Hi Stefan.
Ich hatte deine PN bekommen, hatte aber nur kurz reingeschaut. Da war jedenfalls ein Bug im Disassembler. (Und ist auch noch in der Version die ich geupped habe).
Zu dem OpenProcess. Das ist nur dazu da, damit ich mit einem bereits geöffneten Processhandle weiterarbeiten kann. Deshalb versuche ich die ID die übergeben wurde nochmal zu öffnen, failed es, so muss es bereis ein
Handle sein.
Ist also dafür da, damit ich support für ProcessID und ProcessHandle habe. Die alte version hatte noch keine GetProcessID funktion, die musste ich erst für
WinNT < XP und
Win9x nachbauen. ALso selbs wenn OpenProcess failed, heißt es nicht das es nicht funktionieren kann, dann wird einfach von einem ProcessHandle ausgegangen.
Sicher, dass das LoadLibrary / GetProcAddress failed? Könnte ja auch sein, dass du keinen Speicher bekommen hast. Anstatt Globales InjectLibrary zu testen, versuch es besser erst mal mit einem Prozess. Um es in die Systemprozesse zu laden brauchst du weiterhin die Debugrechte (uallKernel.SetDebugPrivilege). Aber das ist dann wieder alles kritisch und wenn du Windows crashed, bitte nicht bei mir beschweren. Also kann es sein, dass bei manchen Anwendungen eben InjectLibrary failed.
Versuchs mal mit NotePad für einen
dll load test (MessageBoxA bei
dll load). Klappt das versuch mal einen Gloablen Hook (MessageBoxA mit ausgabe Paramstr(0)) damit du weiß ob es funktioniert hat. Sollte das Auch geklappt haben, kannste mal vorher das Debug Privilege sezten und mal die
dll in alle Prozesse laden.