dll nasıl kaldırılır - sayfa 4

 
OneDepo >> :

Evet, haklısınız, bu, dll'yi yeniden yazmak için bekleme süresini kısaltacaktır, ancak asıl sorunu çözmeyecektir: yüksüz gösterge - dll'yi değiştirin! Kütüphanenin LoadLibrary() aracılığıyla yüklendiği açıktır, indirme sayacı uv'dir. 1'e kadar, ancak FreeLibrary() deinit() içinde çağrılmıyor gibi görünüyor. Sayaç 0'a sıfırlanmaz, biz terminali kapatana kadar dll bloke edilir. Bence öyle ama geliştiricilere danışmalısın.

Sizi (bu konudaki bazı katılımcılar hariç) çalışan bir terminalle kim durduruyor:

#import "kernel32.dll"

int GetModuleHandleA(dize sss);
void FreeLibrary(int hhh);
#içe aktarmak


tanım ()

{

handlissimo=GetModuleHandleA("test-dll.dll");

FreeLibrary(handlissimo);

}


???

Fonksiyon parametrelerini kendiniz ekleyebilirsiniz. BELLEKTEN TAMAMEN kaldırmak için DLL bu şekilde serbest bırakıldı - metatrader.exe'nin sınırlamaları ve daha önce belirttiğim Windows'taki GÜÇLÜ ÖNBELLEK nedeniyle (buna dllcache'den korumalı dll dosyalarının değiştirilmesi dahildir) - regsvr32'yi daha fazla kullanın.

Ben bile TheExpert'in MetaQuotes ile ilgili olduğunu görüyorum.

 

Not: bazen regsvr32 bile DLL'yi kaldırmaz ve Windows eski sürümü değiştirir. Uygulama, yalnız bir DLL dosyasının bir HAFTA boyunca bellekte yatabileceğini göstermektedir. Bu durumda, yalnızca bilgisayarı yeniden başlatmak yardımcı olur. Aşırı yüklenmek istemiyorsanız, yarı bilgisayar korsanı yöntemleri, örneğin İşlem Gezgini programı gibi yardımcı olacaktır. Herhangi bir şeyi hafızadan ve herhangi bir yerden nasıl boşaltacağını biliyor - bu forumdaki meslek okulu öğrencilerinin iddiasının aksine (ve bu arada, onu da indirin, haha, ama buna ihtiyacınız yok).

http://www.softpedia.com/get/System/System-Info/Process-Explorer.shtml

kısa açıklama ve eklenti:

http://rootkits.su/app/ShowApp.aspx?id_a=36

 

Bırakmayacağını görüyorum. İyi. MS'in bize regsvr32 hakkında söyledikleri:


Regsvr32 Aracı Kullanımı ve Hata Mesajları


"Regsvr32 aracı (Regsvr32.exe), otomatik olarak kaydedilen .dll veya .ocx dosyaları gibi OLE denetimlerini kaydetmek ve kaydını silmek için tasarlanmıştır. Bu, Windows, Microsoft Internet Explorer ve diğer programlarla ilgili bazı sorunları giderirken gerekli olabilir. Örneğin , Aşağıdaki Microsoft Bilgi Bankası makalesine göre, Windows Update Web sitesinden yeniden yüklemeden önce Wuv3is.dll denetiminin kaydını silmek için Regsvr32.exe aracı kullanılmalıdır."


daha fazla:

"Regsvr32.exe yardımcı programı, DLL'leri ve ActiveX denetimlerini Windows sistem kayıt defterine kaydetmek için kullanılır. Ayrıca DLL dosyaları arasındaki tutarsızlıkları çözmek için de kullanılabilir."

 
HideYourRichess >> :

Bırakmayacağını görüyorum. İyi. MS'in bize regsvr32 hakkında söyledikleri:


Regsvr32 Aracı Kullanımı ve Hata Mesajları


"Regsvr32 aracı (Regsvr32.exe), otomatik olarak kaydedilen .dll veya .ocx dosyaları gibi OLE denetimlerini kaydetmek ve kaydını silmek için tasarlanmıştır. Bu, Windows, Microsoft Internet Explorer ve diğer programlarla ilgili bazı sorunları giderirken gerekli olabilir. Örneğin , Aşağıdaki Microsoft Bilgi Bankası makalesine göre, Windows Update Web sitesinden yeniden yüklemeden önce Wuv3is.dll denetiminin kaydını silmek için Regsvr32.exe aracı kullanılmalıdır."


daha fazla:

"Regsvr32.exe yardımcı programı, DLL'leri ve ActiveX denetimlerini Windows sistem kayıt defterine kaydetmek için kullanılır. Ayrıca DLL dosyaları arasındaki tutarsızlıkları çözmek için de kullanılabilir."

Pekala hacker amca, kendi son cümlenden regsvr32'nin bizim için nasıl çalıştığını tahmin etmiş olmalısın:


http://support.microsoft.com/kb/207132

RegSvr32.exe, aşağıdaki Win32 işlevlerini bu sırayla çağırır:

*OleInitialize
* DLL'yi yüklemek için LoadLibrary
* DllRegisterServer veya DllUnregisterServer
*ÜcretsizKütüphane
*OleUninitialize

http://msdn.microsoft.com/en-us/library/ms683152(VS.85).aspx
Ücretsiz Kitaplık İşlevi

Yüklenen dinamik bağlantı kitaplığı (DLL) modülünü serbest bırakır ve gerekirse referans sayısını azaltır.
Referans sayısı sıfıra ulaştığında, modül çağrının adres alanından kaldırılır.
işlem ve tanıtıcı artık geçerli değil.

Yani, regsvr32 kitaplığı yükler ve serbest bırakır. Ancak kendi başına veya yukarıda önerdiğim basit ve zarif bir çözüm yardımıyla kitaplığı serbest bırakan terminal.exe'nin aksine, ANCAK BELLEKTE KALMAYA DEVAM EDİYOR (bu, Windows'un şu anda kitaplığı boşaltmaması için neden veriyor ve başka herhangi bir işleme sağlayın) - bellekte asılı duran metatrader'ın aksine, komut satırı yardımcı programı regsvr32.exe İŞLEMİNİ TAMAMLAR ve BELLEKTEN YÜKLENİR, bu da Windows'a kitaplığı bellekten tamamen boşaltması için bir neden verir.

Kitaplığın boşaltılması, regsvr32 KULLANILMADAN gerçekleştirilebilir, ancak bu bir rulettir. Bazı insanlar ruleti sever, çoğu profesyonel bundan hoşlanmaz, bu bir gelişim seviyesi meselesidir.

Bir kitaplık basitse ve diğer BİRÇOK kitaplığa bağlanmıyorsa, hızlı bir şekilde YÜKLENEBİLİR. Ancak kütüphane karmaşıksa, veritabanına bağlantı, egzotik kontroller ile, o zaman boşaltılması uzun zaman alabilir - dakikalar hatta saatlerce.

Bu arada, AlwaysUnloadDLL parametresiyle ilgili olarak, Microsoft'un kendisi yalnızca 2000 yılına kadar çalıştığını iddia ediyor ("bir DLL gereksinimini" hesaplamak için daha fazla ve şimdi karmaşık algoritmalar kullanılıyor):

http://msdn.microsoft.com/en-us/library/bb776795(VS.85).aspx

DLL'yi boşaltma

Kabuk, kullanım sayısı sıfır olduğunda, ancak DLL bir süre kullanılmadığında bir DLL dosyasını otomatik olarak kaldırır. Bu etkin olmayan süre, özellikle bir Shell uzantısı DLL'sinin hata ayıklanması sırasında bazen kabul edilemez derecede uzun olabilir. Windows 2000'den önceki işletim sistemleri için, aşağıdaki bilgileri kayıt defterine ekleyerek etkin olmayan süreyi kısaltabilirsiniz.

  • HKEY_LOCAL_MACHINE
  • Yazılım
  • Microsoft
  • pencereler
  • Şimdiki versiyonu
  • kaşif
  • AlwaysUnloadDll
 

Hala şiddetli bir soğuk algınlığına yakalanmış olduğum için (ama unutmayın, bir sıcaklıkla yatakta yatarken bile insanların problemlerini terminal.exe ile tamamen ücretsiz çözmelerine yardımcı oluyorum, yani sadece mali sorunlarını çözmelerine yardımcı oluyorum), olanlara söyleyebilirim. Büyük uzun mesafeli şirketlerde sistem yöneticisi olarak çalışmanın nasıl kolay olmadığıyla ilgileniyorlar (cahil meslek okulu öğrencileri gibi).

Herhangi bir büyük şirket ÜNİFORM anlamına gelir. Bu, tüm sunucularda - yerel ve küresel, Oracle'ın çalıştığı, tüm iş istasyonlarında, Office paketinin aynı sürümünün aynı programının, Excel'in veya Oracle veya MS SQL Server ile analitik bir programın kullanıldığı anlamına gelir, bazıları " dbconnect.dll". Ve sistem yöneticileri için bir "harika" günde, geliştiriciler nihayet bu programın yeni bir sürümünün ve tüm yerel sistem yöneticilerinin hatalarını ayıklar (ilk yüzden bir şirkette - sistem yöneticileri 500-800, 1.250 Terabayt sabit disk belleği, 130 NCR düğümü, 145 olabilir) Unix sunucu sistemleri ve 2600 Windows sunucusu, 2.000'den fazla kurumsal lokasyonda 80.000 posta kullanıcısı) bu programın "yarın" DEĞİŞTİRİLMESİ için bir sipariş geldi. Program karmaşıktır, birçok şey kullanır, sadece bir bilgisayarda yeniden yazmak işe yaramaz. Ve sistem yöneticisinin bunun için zamanı varsa, regsvr32'den sonra bilgisayarı yeniden başlatmak gerekir.

Aynı zamanda, değiştirme sadece 18-00'den 24-00'a kadar yapılabilir, çünkü 18-00'e kadar ofis çalışanları hala bilgisayarlarda çalışıyor ve 24-00'da Yorakly'deki sunucularda servis çalışması başlıyor, otomatik güncellemeler Windows ve otomatik güncellemeler istasyonlarda başlar - antivirüs güncellemeleri. UZAKTAN BAŞLAT regsvr32 ve istasyona yaklaşmadan istasyonu yeniden başlatmak için araçlar var, ancak bunlar her zaman çalışmıyor (etkin güvenlik duvarı, oturum açmamış kullanıcı vb.). Ve yerel sistem yöneticisi, birbirinden uzak, farklı katlarda ve zaten kapalı ofislerde 50-100 bilgisayara sahip olabilir.

Ve şimdi sistem yöneticileri şirketin etrafında koşuyor ve kalemlerle regsvr32'yi başlatıyor.

 

Regsvr32, COM sunucularını kayıt defterine kaydettirmek ve kayıtlarını kaldırmak için tasarlanmıştır.

Bu tüm dll'ler değil. Bu, dll'nin özel bir türüdür. Regsvr32'yi aramanıza gerek yoktur.

Yukarıda gösterildiği gibi FreeLibrary'yi çağırmak veya "#import" kullanmamak, ancak bir çift kullanmak yeterlidir:

LoadLibrary, FreeLibrary.

Bu arada, nedense, gösterge kaldırıldıktan hemen sonra dll'lerim serbest bırakılıyor.

 

Aslında ben şahsen Rusça ve İngilizce okuyabilenler için yazıyorum. Garip insanlar, burada tekrar ediyorlar NEDEN regsvr32 onuncu kez oluşturuldu. Onu bir mantra gibi, bir büyü gibi çakıyorlar ve diğer tipler nedenini bilmiyorlar. Ve regsvr32'nin istediğimizi yapması ve hiçbir yan etkisi olmamasının ne önemi var?

Bu, bir acil durum veya resüsitasyon doktorunun alkolik ("gelişmiş" türden) bir sodyum hiposülfite atfettiği ile aynıdır.

http://drugslist.ru/drugs/antichlor-sodium-thiosülfat/

ve onu içmeyeceğini haykırmaya başlar, çünkü ..... bu bir fotoğraf düzeltici ve onu zehirlemek istiyorlar!

http://www.rwwc.ru/recipe/index6.php

Burada çok fazla akıllı insan varsa, o zaman herhangi bir bilgisayarda mevcut olan ve HERHANGİ BİR İSTENİLEN KÜTÜPHANE'yi yükleyip hemen boşaltan BAŞKA bir standart yardımcı programı göstermelerine izin verin, böylece Windows DLL önbelleğini sıfırlar.

 
AlexEro >> :

...

burada onuncu kez NEDEN regsvr32 oluşturulduğunu tekrarlıyorlar. Ve regsvr32'nin istediğimizi yapması ve hiçbir yan etkisi olmamasının ne önemi var? Onu bir mantra gibi, bir büyü gibi dövüyorlar.

Bu, bir acil durum veya resüsitasyon doktorunun alkolik ("gelişmiş" türden) bir sodyum hiposülfite atfettiği ile aynıdır.

...

Bütün bunlar çok önemlidir. Tıbbi benzetmeler çoktan gittiyse, buraya yazdığınız şey ağrıyan bir kafayı baltayla tedavi etmek gibidir.


AlexEro >> :

...

Kitaplığın boşaltılması, regsvr32 KULLANILMADAN gerçekleştirilebilir, ancak bu bir rulettir. Bazı insanlar ruleti sever, çoğu profesyonel bundan hoşlanmaz, bu bir gelişim seviyesi meselesidir.

Bir kitaplık basitse ve BİRÇOK başka kitaplığa bağlanmıyorsa, hızlı bir şekilde YÜKLENEBİLİR. Ancak kütüphane karmaşıksa, veritabanına bağlantı, egzotik kontroller ile, o zaman boşaltılması uzun zaman alabilir - dakikalar hatta saatlerce.

...


Prensipte dll yükleme / boşaltma mekanizmasının nasıl çalıştığını anlamıyorsunuz, buradan bu konuda böyle hastalıklı fantezileriniz var. regsvr32 kullanmanıza gerek yok, bunun için tasarlanmamıştır.Ayrıca, FreeLibrary kullanarak kütüphaneyi deinit'e boşaltmaya çalışmanıza gerek yok, kütüphane kendini boşaltmalı, tabii içinde büyük hatalar yoksa. "Basit ve zarif çözümünüz" saçmalık. Özellikle DllMain içinde kilitlenmeler varsa, çoğu durumda çalışmayacaktır.


Tekrar ediyorum, bir dll'yi kaldırmanın tek normal ve doğru yolu, dll'nin kendisini hatasız yazmaktır. Eğer dll normal olarak boşaltılmazsa, kodlayıcının elleri çarpıktır (kodlayıcıdır, terminalin kendisinde her şey doğru yapılır), hepsi bu. Her zaman, tekrar ediyorum, her zaman dll, göstergeyi çıkardıktan hemen sonra düzenli olarak boşaltılır. Ve haklı olarak, terminalde bu şekilde tasarlanmıştır.


Ve sysadmin deneyiminize atıfta bulunarak kurgularınıza boşuna ağırlık vermeye çalışıyorsunuz. Aranızdaki sistem yöneticisinin çok zeki olmadığını zaten öğrendik, bu yüzden çok çocukça, komik görünüyor.

 
HideYourRichess >> :
Sen sadece dll yükleme/boşaltma mekanizmasının prensipte nasıl işlediğini anlamıyorsun buradan bu konuda böyle hastalıklı fantezilerin var... . "Basit ve zarif çözümünüz" saçmalık. Özellikle DllMain içinde kilitlenmeler varsa, çoğu durumda çalışmayacaktır.
Hacker amca, sözlerinde mantık yok: eğer kütüphane HER ZAMAN kendi kendine boşaltılıyorsa, o zaman neden FreeLibrary'ye "benim" çağrım sana göre "çoğu durumda çalışmayacak"? deinit () bloğundaki FreeLibrary'ye yapılan fazladan bir çağrının ne zararı olabilir? Belki de FreeLibrary'ye () yapılan çağrı, sizce kitaplığın yayınlanmasını bir şekilde engeller, ya da ne? Tutarsızlık, havalı hacker amca ve bariz.
 
AlexEro >> :
Hacker amca sözlerinde mantık yok

1. dolgu sorusu - sistem, dll'yi hangi işlemlerden kaldıracağını nasıl biliyor?

Doldurma için 2. soru, dll'yi indirmeden giriş noktasını nasıl bulacağınızdır?


Şimdi konuya. Dll, doğru kayıt için regsvr işleminde yüklenir ve kaldırılır. Ve elbette, bu, diğer süreçlerden boşaltılmasını etkilemez.

Olduğunuzdan daha aptal olmaya çalışmayın. Hala bir artı olmasına rağmen - manayı okuyabilirsiniz.

kitaplık HER ZAMAN ve HER ZAMAN boşsa, neden "benim" FreeLibrary'yi çağırsın, dediğiniz gibi "birçok durumda çalışmaz"? deinit () bloğundaki FreeLibrary'ye yapılan fazladan bir çağrının ne zararı olabilir? Belki de FreeLibrary'ye () yapılan çağrı, sizce kitaplığın yayınlanmasını bir şekilde engeller, ya da ne? Tutarsızlık, havalı hacker amca ve bariz.

Bu apaçık. Dll'yi boşaltmaya ek olarak, gösterge (uzman) başlatmasızlaştırma uygulaması bununla doğrudan ilgili herhangi bir şey içerebilir, bu da dll'nin yetkisiz olarak serbest bırakılmasını bir hack'e dönüştürür ve bu da terminalin doğru çalışmasını garanti etmez.


Toplam - bir deve olmadığınızı kanıtlamak için artık başarılı olmayacaksınız, iyi şanslar, daha fazla şişirin.

2Hepsi: adminlere götürmek için kafanıza takmayın.