![]() |
SetThreadContext - Rechte besorgen (Prozess debuggen)
Hi,
ich möchte Set/GetThreadContext für den Thread eines fremden Prozesses aufrufen. Dies schlägt nur leider immer fehl. Wie kann ich mir die erforderlichen Rechte besorgen? Florian |
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
PSDK lesen hilft:
Zitat:
|
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Mhh sollte aber gehen, da mein zweites Programm CreateProcess mit CREATE_SUSPENDED verwendet. Also sind doch eigentlich alles Threads suspendiert.
Dann bekomme ich per Windows Message das Handle des Threads, was ich aus ProcessInfo auslese und versuche GetThreadContext aufzurufen. Das schlägt allerdings fehl. |
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Du solltest vieleicht erstmal die grundlagen lernen und dir dein "project" nicht zusammen kopieren ...
|
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Zitat:
Und ich habe dir oben schon mal gesagt, dass man das PSDK lesen soll: Zitat:
|
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Win32.API hat recht
CreateProcessA liefert ProcessID // ProcessH // ThreadID // ThreadH Mit GetThreadContext(ThreadH) sollte es gehen, ansonsten OpenThread mit der ThreadID versuchen. Btw. machste bei CREATE_SUSPENDED nen System Breakpoint, änder danach also das EIP Register blos nicht ab. |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Internet / LAN / ASP.NET" nach "Windows API / MS.NET Framework API" verschoben.
Kein Netzwerkproblem |
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Ist ja gut, ist ja gut .. ich kopiere mir nichts zusammen ..
@Luckie: Das PSDK habe ich gelesen, allerdings hilft mir das auch nicht weiter, wenn der Aufruf komplett fehlschlägt. Ich hätte den Fehler vielleicht etwas genauer beschreiben können, sorry. Das Problem ist, dass der Aufruf von GetThreadContext sofort eine AV auslöst. @Win32.API: Wie kommst du drauf? @brechi: Nein, hat er nicht .. Ich weiß, dass CreateProcess diese Werte liefert. Führe ich ein einem Testprojekt CreateProcess aus und nehme hThread für GetThreadContext, dann funktioniert auch alles. Erstelle ich in einem zweiten Programm allerdings mit CreateProcess einen Prozess und übergebe hThread an mein erstes Programm und rufe darin GetThreadContext auf, dann schlägt dies in einer AV fehl. OpenThread mit der ThreadID habe ich auch probiert. Der Fehler bleibt allerdings gleich .. |
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
1) Sollte GetThreadContext nie crashen sondern nur failen und dann mit GetLastError der Fehler ausgelesen werden können.
2) Ist es klar dass GetThreadContext nicht mit hThread aus einem anderen Thread funzt. (Grundlagen?) => Du machst was mit GetThreadContext falsch, z.b. setzt die größte von TContext nicht oder setzt nicht die Flags von dem was ausgelesen werden soll. |
Re: SetThreadContext - Rechte besorgen (Prozess debuggen)
Zitat:
2) Ja, deshalb habe ich dort doch auch den Fehler vermutet. Wenn man debug Rechte für einen Prozess besitzt kann man IMHO auch GetThreadContext mit Thread dieses Prozesses aufrufen. Vielen Dank für eure Hilfe :thumb: (Was ich allerdings immer noch komisch finde, ist, dass mein Code funktioniert, wenn ich CreateProcess im selben Programm aufrufe. Ohne vorher die Größe von TContext zu setzen ..) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz