[Frage]DLL in Exe injizieren

12/12/2012 18:26 iFamouZ<3#1
Hallo!

Es ist möglich, eine dll in eine Exe zu konvertieren (gesehen an einen Metin2 Clienten) aber wie genau funktioniert das, dass die dll dann mit den .exe start abgerufen wird. Bzw Programme?

Regards
12/12/2012 19:30 Jeoni#2
Jo, ist ganz leicht. Das einfachste wäre wohl die DLL in der IAT der Exe zu verlinken. Wenn die Exe dann in den Speicher geladen wird, wird es die DLL ebenfalls. Also das lässt sich am einfachsten automatisieren.
Wenn du das manuell machen willst, würde ich zu OllyDbg raten. Also per Olly eine Codecave erzeugen, dort dann per LoadLibrary die gewünschte DLL laden und von irgendwo am Anfang der Exe (Main-Funktion) zur Codecave springen. Hier musste nur drauf achten, dass du mit der Codecave nicht die Register oder den Stack beschädigst.
Ich hoffe, ich konnte dir helfen ;)
Jeoni
12/12/2012 23:35 Tyrar#3
Quote:
Originally Posted by Jeoni View Post
Jo, ist ganz leicht. Das einfachste wäre wohl die DLL in der IAT der Exe zu verlinken. Wenn die Exe dann in den Speicher geladen wird, wird es die DLL ebenfalls. Also das lässt sich am einfachsten automatisieren.
Wenn du das manuell machen willst, würde ich zu OllyDbg raten. Also per Olly eine Codecave erzeugen, dort dann per LoadLibrary die gewünschte DLL laden und von irgendwo am Anfang der Exe (Main-Funktion) zur Codecave springen. Hier musste nur drauf achten, dass du mit der Codecave nicht die Register oder den Stack beschädigst.
Ich hoffe, ich konnte dir helfen ;)
Jeoni
Code:
push szModuleName
call LoadLibraryA
test eax, eax
jnz OriginalCode
push eax
push eax
push szError
push eax
call MessageBoxA
push eax
call ExitProcess
retn

szModuleName:
db "fap.dll",0
szError
db "you suck!",0
prinzipiell so! (ist allerdings nicht die "wirklich" automatische variante)
12/20/2012 23:51 +Yazzn#4
Man kann auch bereits vorhandene Imports missbrauchen.