Not sure if the title is that telling but what I want to do is hack into an executable and do as little as necessary to get the code from my DLL running since I want to write as few lines of assembly code as possible.
I already have the place where I'd like to jump in and I am ready to insert the necessary assembly instructions into the executable using ollydbg but since I never did that before I'm afraid I need a little help on those last steps.
What I want to do is basically:
- Force the executable to load my DLL
- Push a few parameters onto the stack for
but I'm not sure what's the best way to accomplish that. Is there a straight forward way to get this done?
Btw: Is what I'm doing here actually called "dll-injection"?
CreateRemoteThread(..., LoadLibraryA, "your_dll.dll", ...)). You can do it yourself if you want, too (that's called manual mapping).
CreateRemoteThread()in order to load my dll, then call
GetProcAddress()to get the address of
init_my_dll()and call it? The link you are referring seems to do something different - if I get this right there are two processes in the end. I don't get how I would make the target process call
init_my_dll()as described there.
GetProcAddressto call your function. You use it to find
LoadLibraryA, and call it. That function will load your DLL, and will call its
DllMain- and that function could be calling your
init_my_dllfunction. That said - if you're trying to do this with a game, be careful, those have anti-cheats which usually detect this technique and ban you.