Einzelnen Beitrag anzeigen

peanut
(Gast)

n/a Beiträge
 
#1

API-Hooking greift nicht bei "Benutzer wechseln"

  Alt 16. Jul 2006, 14:02
Hallo,

ich möchte den Aufruf an die folgenden API-Funktionen überwachen

CreateProcess
CreateProcessA
CreateProcessW

CreateProcessAsUser
CreateProcessAsUserA
CreateProcessAsUserW

CreateProcessWithLogonW

LoadLibrary
LoadLibraryA
LoadLibraryW
LoadLibraryEx
LoadLibraryExA
LoadLibraryExW
GetProcAddress

CreateRemoteThread

Ich habe das mittels einer DLL gelöst, die an jeden gestarteten Prozess gehängt wird. Hierfür habe ich einen Dienst installiert, der diese beim Hochfahren an jeden Prozess "klebt". Die DLL sorgt dann entsprechend dafür, dass sie auch in alle weiteren Prozesse geladen wird, die mit diesen ersten Prozessen erzeugt werden. Das funktioniert auch ganz gut - leider nur, wenn genau ein Benutzer aktiv ist! Sobald man unter Windows XP auf "Benutzer wechseln" geht, wird die DLL nicht an die Prozesse gehängt, die im Zugang des zweiten Benutzers ausgeführt werden, obwohl in winlogon.exe etc. auch meine DLL steckt, die eigentlich dafür sorgen soll, dass sie in jeden neuen Prozess geladen wird.

Meldet man sich dagegen ab, ohne "Benutzer wechseln" und meldet sich dann mit einem anderen Benutzer wieder an, wird die DLL wie gewünscht angehängt. Gleiches gilt für "Ausführen als", auch das funktioniert anstandslos.

Was geht hier schief? Verwendet Windows versteckte Funktionen, so dass mein hooking hier nicht greift?

Gruß peanut.
  Mit Zitat antworten Zitat