![]() |
DLl-Injection HWND der Hostapplikation herausfinden
Tag,
ich experimentiere gerade mit DLL-Injections rum. Klappt auch soweit. Nur habe ich ein problem: Ich möchte innerhalb meiner DLL das HWND der hostapplikation, in das es injeziert wurde, herausbekommen, und das Klappt überhaupt nicht. Ich schaffe es die PID, den Pfad zur applikation und den ExeNamen herauszubekommen. Das gogolen und auch die sufu hier erbrachten nichts nützliches(zum testen soll mit hilfe des HWND einfach besagte applikation kurz per hide verschwinden und dann wieder erscheinen, und das funzt nicht) Bin auch schon per enumWindows durch die fenster und habe die PIDs verglichen. Alles kein erfolg. Super wäre natürlich sowas wie GetHwndfromPID, aber sowas scheints nicht zu geben >.< EDIT: als testgebiet dient Wordpad (bin unter WinXp). Aber grundsätzlich soll es applikationsunabängig laufen. MFG Memnarch |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Alle Fenster auflisten und dem Prozess zuordnen ginge schon. Aber was genau möchtest du denn erreichen? Es gibt schließlich Prozesse ganz ohne Fenster ;)
|
AW: DLl-Injection HWND der Hostapplikation herausfinden
Delphi-Quellcode:
:?:
function getProcessWinHandle(const PID: Integer): THandle;
function MyEnumWindowProc(AHandle: THandle; EWD: PEnumWinData): boolean; stdcall; var ProcessID: THandle; begin ProcessID := 0; GetWindowThreadProcessID(AHandle, ProcessID); if (ProcessID = EWD.ProcessID) and IsWindow(AHAndle) then begin result := true; if EWD.WinHandle = 0 then EWD.WinHandle := AHandle; end else result := true; end; var EWD : pENumWinData; begin new(EWD); EWD.WinHandle := 0; EWD.ProcessID := PID; EnumWindows(@MyEnumWindowProc, Integer(EWD)); Result := EWD.WinHandle; dispose(EWD); end; |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Zitat:
|
AW: DLl-Injection HWND der Hostapplikation herausfinden
@Assarbard: Ich ziele imo nur auf Prozesse mit Fenster ab(wie wordpad).
@Mleyen: da sist aber mal ne abenteuerliche konstruktion mit ner funktion inner funktion o.O. Ich gucks mir mal an. MFG Memnarch |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Zitat:
|
AW: DLl-Injection HWND der Hostapplikation herausfinden
Warum wird oben eigentlich nach THandle gefragt? Sind die prozessIds nicht eigentlich Cardinals?
MFG Memnarch |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Zitat:
Ist etwas, was vermutlich behoben werden sollte. Aber in Delphi sind (ohne 64bit-Compiler) THandle und Cardinal wohl noch identisch. Ein Handle hat normalerweise in C die Breite eines Pointers ;) |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Ah gut :)
Also es klappt einfach immernoch nicht o.O. Die PID die meine DLL rausgibt, stimmt mit der überein, in die ich injeziert habe, allerdings findet der wohl kein HWND zu wordpad..... |
AW: DLl-Injection HWND der Hostapplikation herausfinden
Haste DeddyH's "Patch" auch drin?
Apropos: was steht denn in EWD.WinHandle? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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