Ich verwende SetWindowsHookEx, um eine DLL in einen anderen Prozess zu injizieren. Wenn das Injektorprogramm jedoch endet, wird die DLL aus dem anderen Prozess entladen. Gibt es überhaupt für mich, das Entladen zu stoppen? Grundsätzlich möchte ich, dass die DLL permanent persistiert, unabhängig davon, ob das Injektorprogramm noch läuft. Wenn ich in der Lage bin, die Anzahl der DLL-Referenzen innerhalb der DLL zu erhöhen, könnte das funktionieren. Aber ich habe keinen Weg gefunden.SetWindowsHookEx DLL entladen
Antwort
existieren 2 Weg 1.) am effektivsten - verwenden Sie LdrAddRefDll - dies tun genau das, was Sie in kürzester Zeit brauchen. Sie müssen ntdll.lib (oder ntdllp.lib) zum Verknüpfen verwenden.
LdrAddRefDll(0, (HMODULE)&__ImageBase);
2) nicht schön und effektiv, aber
WCHAR sz[MAX_PATH];
if (GetModuleFileName((HMODULE)&__ImageBase, sz, RTL_NUMBER_OF(sz)))
{
LoadLibrary(sz);
}
Danke. Ich war in der Mitte des Schreibens 2). Jetzt werde ich einfach kopieren und einfügen :). Was für 1), das sieht kompliziert aus. Ich werde es verwenden, wenn 2) nicht funktioniert. – user118708
sowohl 1 als auch 2 funktionieren natürlich. beide fügen einen Verweis auf dll hinzu, die sie vor dem Entladen halten - brauchen jetzt zusätzliche FreeLibrary. aber 1 - mach das direkt. 2 übersetze zuerst & __ ImageBase, dann übersetze den Namen in __ImageBase und füge schließlich die Referenz – RbMm
Erfolg hinzu. Ich habe 2 verwendet, weil ich die Linker-Einstellungen nicht ändern musste - ich weiß nicht einmal, wo das ist. DLL_PROCESS_ATTACH hat mir das DLL-Handle gegeben, das ich in GetModuleFileName füttere. Das Modul wurde aus einem neuen Thread im Falle von Dead Locks in DllMain geladen. – user118708
- 1. C++: Dll Entladen Problem
- 2. Entladen dll in Java
- 3. Reliabily Dll in Java entladen
- 4. Meine DLL wird nicht entladen, auch wenn ich appdomain entladen
- 5. SetWindowsHookEx in C#
- 6. C++ DLL entladen nicht mit AppDomain
- 7. C# Dll entladen sich? Ist es möglich,
- 8. SetWindowsHookEx HOOKPROC undeclared identifier
- 9. Gma.UserActivityMonitor & SetWindowsHookEx Fehler 126
- 10. Programm hängt beim Entladen einer DLL mit GdiPlus
- 11. Wie zu entladen Bibliothek (DLL) von Java JVM
- 12. Dynamisch Laden und Entladen einer mit CSharpCodeProvider erstellten DLL
- 13. Wie kann ich eine DLL mit Ctypes in Python entladen?
- 14. Entladen alle qt dlls
- 15. Beobachten Sie geöffnete Fenster mit SetWindowsHookEx
- 16. Müssen R-Pakete dynamische Bibliotheken entladen, wenn sie entladen werden?
- 17. C++ SetWindowsHookEx WH_KEYBOARD_LL Richtiges Setup
- 18. SetWindowsHookEx für Mac OS X?
- 19. Der Unterschied zwischen den Verwendungen von SetWindowsHookEx
- 20. Baugruppen entladen sich nicht nach dem Entladen von AppDomain?
- 21. DLL Entlastungsprozedur
- 22. SetWindowsHookEx, KeyboardProc und nicht statische Mitglieder
- 23. Dlls Entladen, um in Unix und Windows
- 24. SetWindowsHookEx mit WH_MOUSE erfasst keine Mausbewegungen über den HTCAPTION-Bereich
- 25. Windows-API zum Entladen einer Bibliothek
- 26. C++ DLL Unload Destruktor?
- 27. java script + onbefore entladen
- 28. laden und entladen uiviewcontrollers
- 29. Javascript Fenster entladen Ereignis
- 30. Entladen CodeDom-kompilierte Assembly
für erhöhen die dll Referenzzähler arbeiten - 'LdrAddRefDll (0, & __ Imagebase);' – RbMm
Dank. Ich stelle Ihren Vorschlag in Visual Studio, aber diese Namen sind nicht bekannt. Gibt es eine Include-Datei, die ich verwenden muss? – user118708
deklarieren Sie es selbst und verwenden Sie ntdll.lib – RbMm