Hallo,
ich habe eine elevated .NET applikation (mit aktiviertem "SeDebugPrivilege" Privileg), die die funktion DebugBreakProces() aufruft, es aber auf dem Zielprozess zu keiner Exception/INT3 kommt. Nun stelle ich mir die Frage, was ich falsch mache,
bzw. wie ich es richtig mache. Ich öffne den Prozess erfolgreich mit OpenProcess(PROCESS_ALL_ACCESS) und übergebe das Handle dann an DebugBreakProcess(), welche auch mit einem Rückgabewert !=0 einen Erfolg meldet, aber da wird kein Debugger
gestartet oder eine Ausnahme ausgelöst. Ich arbeite auf einem Vista System und die Funktion ist ab XP verfügbar, sollte also gehen. Entweder habe ich den Sinn dieser Funktion nicht verstanden, bzw. man arbeitet anders damit, oder irgendwas geht hier
einfach nicht. Ich kann auch so vorgehen, das ich eine DLL in den Zielprozess lade und diese dann mit einer Funktion versehe, die einen __asm INT3 auslöst, bzw. DebugBreak() aufruft (ist intern das gleiche), das kann man z.B. mit CreateRemoteThread()
machen, oder auch den Prozesspeicher des Prozesses direkt manipullieren, Sprungadressen manipulieren, etc....aber da motzt jeder Virenscanner und das zurecht. Wie benutze ich diese Funktion richtig und/oder wie rufe ich den installierten Debugger für
einen beliebigen Prozess per Code auf?
Grüße
K.
------------------------- Beste Grüsse / Best regards / Votre bien devoue Kerem Gümrükcü http://entwicklung.junetz.de ------------------------- "This reply is provided as is, without warranty express or implied."