Loader
Description:
A generic, advanced, and portable DLL injector.
Features:
- Native IA32 injection. (Inject 32-bit DLLs into 32-bit processes.)
- Native AMD64 injection. (Inject 64-bit DLLs into 64-bit processes.)
- Injection via process id. (On the fly injection.)
- Injection via window title. (On the fly injection.)
- Injection via process creation. (On the fly injection.)
- Injection via process name. (On startup injection.)
- Ejection via process id. (On the fly ejection.)
- Ejection via process title. (On the fly ejection.)
- Ejection via process creation. (On the fly ejection.)
- Ejection via process name. (On startup ejection.)
- Remote export calling. (Call an export remotely in the module. Allows for safe injected DLL programming.)
- Batch scriptable command line interface.
- Suspends the process while injecting or ejecting to help prevent potential race conditions present primarily in DLLs that perform hooking.
Compatibility:
Should work on all Windows versions after and including Windows XP SP2. Support for Windows versions earlier than SP2 is unofficial. If you get it to work that's great, however I have no interest in officially maintaining anything earlier than XP SP2.
Personally, I run Windows 7, the only reason I support anything earlier than that is for when I make public releases. I'd love to be able to drop XP and Vista support entirely, however there are still too many people still using them.
Tested and working natively on both IA32 and AMD64 .
Notes:
Binaries only for this release. Source may/will come later, once I am ready to open-source some new dependencies or fork the loader project internally to avoid them altogether.
Suggestions and criticisms are as always appreciated.
This may not appear anywhere else without permission, but may be linked to.
Releases:
Suggestions and criticisms are as always appreciated.
This may not appear anywhere else without permission, but may be linked to.
Releases:
v20091027a - Initial release. No known issues.
v20091112a - Minor miscellaneous fixes.
v20091117a - GUI added. Minor miscellaneous fixes.
v20091118a - Minor GUI bug fixed.
v20091119a - Fixed bug with Launch not functioning correctly. Thank you alex.
v20091209a - Fixed a few misc bugs, along with one very annoying one causing the GUI to be unable to launch the Loader in some scenarios (thank you Apoc).
v20091112a - Minor miscellaneous fixes.
v20091117a - GUI added. Minor miscellaneous fixes.
v20091118a - Minor GUI bug fixed.
v20091119a - Fixed bug with Launch not functioning correctly. Thank you alex.
v20091209a - Fixed a few misc bugs, along with one very annoying one causing the GUI to be unable to launch the Loader in some scenarios (thank you Apoc).
10 comments:
thanks for this,will help me i think :)
omg this thing makes injecting a piece of cake. good work. Is there a way to find out command line options for the non-gui binaries?
Yes, use the '--help' command.
Example:
Loader_IA32.exe --help
Aww Fff, too much alcohol. I must've tried everything but that -h, /? /h, thanks
Is it possible to call an exported function when ejecting a DLL? I tried the command line below and my Eject function is never called. I want a way to cleanup stuff before my DLL is unloaded. Should I just use DllMain for that?
"Loader_IA32.exe --eject --module $(TargetPath) --process exefile.exe --export Eject"
Hey, thanks for the report, I'll look into that.
I seem to recall noticing that myself and fixing it internally, but not pushing an update.
I'll look into it soon, but it may be a day or two, I'm in the US at the moment (I live in Australia) and I only arrived very late last night so there's still a lot of stuff I need to organize.
Especially given the airline have lost one of my bags at LAX. >_>
Just a suggestion...
I'm using this with Guild Wars (and it works nicely) however I use Textmod prior to that, so launching it through the Injector won't work in that case.
Perhaps a feature could be added that would watch for a particular process to load before injecting code? That way I can fire up GW through Textmod and then the Injector would work its magic through the predefined path to the .dll.
I'm sure this would be useful in many other scenarios, since there are a fair number of games which already require a loader of some kind to run mods, etc. Thanks for the app in either case!
Thank you very much for your injector, if you happen to release the code, I will be your minion forever :P
Because I coded an injector but it doesn't work for 64 bit systems, or if you can help me out I can send you my source.
Thank you in advance.
My open source C++ memory editing library 'HadesMem' includes DLL injection code. I suggest you go check that out, it has full x86 and x64 support. Just keep in mind that you'll need to respect the license agreements for the library and its dependencies.
Yeah, well, I am coding for personal use, don't worry about me releasing something.
Post a Comment