Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi uallHook - UnloadLibrary hängt Zielprozess auf (https://www.delphipraxis.net/88838-uallhook-unloadlibrary-haengt-zielprozess-auf.html)

Zacherl 21. Mär 2007 20:15


uallHook - UnloadLibrary hängt Zielprozess auf
 
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

Zacherl 22. Mär 2007 20:40

Re: uallHook - UnloadLibrary hängt Zielprozess auf
 
Naja .. habs jetzt einfach in den finalization Teil gesteckt. Damit geht es wunderbar :)

brechi 22. Mär 2007 21:20

Re: uallHook - UnloadLibrary hängt Zielprozess auf
 
du solltest schon in dllmain dwReadon unterteilen in DLL_PROCESS_ATATCH etc
desweitren lass das ExitThread(0) weg das wird nicht gebraucht

Zacherl 22. Mär 2007 21:35

Re: uallHook - UnloadLibrary hängt Zielprozess auf
 
Ich hatte es in DLL_PROCESS_ATTACH und DLL_PROCESS_DETACH unterteilt. Das Ergebniss blieb aber das Selbe .. naja so läuft es ja jetzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz