Mmmh, hab ich noch nie probiert. Grunsätzlich ist es aber doch überflüssig die user32.dll in das Verzeichnis zu kopieren. Wie gesagt,es besteht ja keine Gefahr,dass der API-Hook die "echte" user32.dll ändert. Durch das Seitenschutzattribut wird nur eine nicht-persistente VM-Version geändert.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
darum geht es ja nicht, nur das programm läd die user32.dll aus dem arbeitsverzeichnis nicht, er läd nur die ausm system32 verzeichnis. Bei mfc-dlls oder anderen "zusätzlichen" dlls, riched20.dll, usw funktioniert es. -- class God : public ChuckNorris { };
Also ich hatte da noch was im Hinterkopf und hab mich nochmal in der Win-Bibel schlau gemacht. In der Tat werden System Dll´s anders behandelt. Welche das alle sind kann man hier sehen: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\KnownDLLs
Die hier aufgeführten Dlls werden nur im Systemverzeichnis gesucht,werden sie dort nicht gefunden gibt GetLastError FILE_NOT_FOUND zurück.
Bearbeitung von Spacelord:
PS: In diesem Regschlüssel schaut Windows aber wohl nur dann nach wenn man die Endung .dll bei einem Aufruf von LoadLibrary mit angibt.Sofern man eine Dll also explizit mit LoadLibrary lädt,und die Endung .dll weglässt,sollte Windows sich auch bei den System Dlls an die normale Suchreihenfolge halten.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.Dieser Post wurde am 18.12.2004 um 22:20 Uhr von Spacelord editiert.