![]() |
Delphi-Version: 7
DLL-Injection klappt nicht
Hallo,
Delphi-Quellcode:
wäre für Denkanstöße, warum es so nicht funktioniert sehr dankbar!
procedure TForm1.Button1Click(Sender: TObject);
const Pfad = 'C:\temp\test.dll'; var h : HWND; r, hProc, Fehler : DWORD; pVAE : Pointer; begin h := FindWindow(nil,PAnsiChar('Unbenannt - Editor')); GetWindowThreadProcessId(h,@r); hProc := OpenProcess(PROCESS_ALL_ACCESS,false,r); pVAE := VirtualAllocEx(hProc,nil,length(Pfad)+1,MEM_COMMIT OR MEM_RESERVE,PAGE_READWRITE); WriteProcessMemory(hProc,pVAE,Pchar(Pfad),length(Pfad)+1,Fehler); CreateRemoteThread(hProc,nil,0,getprocaddress(loadlibrary('kernel32.dll'),'LoadLibraryA'),pVAE,0,Fehler); end; Vlt. verstehe ich auch etwas falsch: also habe mal ganz easy mit findwindow "h" das handle von notepad zugewiesen, dann in "r" die Processid gespeichert... hProc das Handle des Prozesses zugewiesen. Dann mit VirtualAllocEx Speicher für den String "C:\temp\test.dll" alloziert und mit WriteProcessMemory dann den String reingeschrieben. Und ja, dann CreateRemoteTherad das handle von OpenProcess wieder geben,
Code:
deshalb GetProcAddress(loadlib) machen und halt eben den Pfad zur DLL...
"A pointer to the application-defined function of type LPTHREAD_START_ROUTINE to be executed by the thread and represents the starting address of the thread in the remote process. The function must exist in the remote process. For more information, see ThreadProc."
Hilfe ;) |
AW: DLL-Injection klappt nicht
Ich glaube nicht das notepad (Glaskugel meint das aufgrund des Fenstertitels) noch mit Ansi-Versionen der Win-API arbeitet.
Und unter Win64 ist notepad eine 64-Bit App in die du eine 32-Bit DLL nicht injekten kannst. |
AW: DLL-Injection klappt nicht
Mit 64 Bit macht es eh Spaß.
Zum Schutz werden dort doch die BaseAdresses der DLLs zufällig vergeben, damit dort Viren und Co. weniger Schaden anrichten können ... mit der lokalen Adresse einer DLL wird man im anderem Prozess dann wohl nicht viel anfangen können, da diese dort vermutlich ganz wo anders liegt. Und wie man immer wiedr sagen muß: Werte endlich mal die Rückgabewerte der aufgerufenen Funktionen aus! |
AW: DLL-Injection klappt nicht
Zitat:
|
AW: DLL-Injection klappt nicht
Eventuell fehlt das Debug-Privileg um an den "fremden" Speicher zu kommen.
|
AW: DLL-Injection klappt nicht
Zitat:
Es lag dummer- und logischerweise daran, dass notpad eine 64-bit app war. Aber für alle die ähnliche Probleme haben: Debug Privilege sind oftmals auch erforderlich, einfach mal hier schauen: ![]() Lg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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