Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

uallHook - UnloadLibrary hängt Zielprozess auf

  Alt 21. Mär 2007, 20:15
Hey,

ich lade mittels InjectLibrary eine Dll testweise in die eigene Anwendung. Die DLL sieht etwa so aus:

Delphi-Quellcode:
procedure DllMain(Reason: DWORD); stdcall;
begin
  MessageBox(0, 'Hallo', 'Hallo', 0);
end;

begin
  DllProc := @DllMain;
  DllMain(DLL_PROCESS_ATTACH);
  ExitThread(0);
end;
Wie man sieht passiert nichts Aufregendes. Beim Aufruf von InjectLibrary wird nun auch wie erwartet die Meldung "Hallo" ausgegeben.
Führe ich nun aber UnloadLibrary aus hängt sich meine Anwendung einfach auf. Es passiert danach nichts mehr. Der Prozess lässt sich nur noch über den Taskmanager beenden.

Das Komische: Lasse ich das "DllProc := @DllMain" weg, lässt sich die DLL ganz normal entladen. Damit könnte ich leben, allerdings muss ich mitbekommen, wenn die DLL entladen wird, da ich eine API hooken will. Diese sollte nach dem Entladen der DLL ja auch wieder enthookt werden um AVs zu vermeiden.

Vielen Dank
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat