Inject is a tool which injects an ordered list of shared libraries into the address space of a binary executable. The created process is initially suspended, and resumes execution once the ordered list of shared libraries have been loaded into its address space, and their respective DllMain functions have finished executing.
$ inject EXE [DLL...]
$ inject a.exe b.dll c.dll
Order of execution:
- Create a suspended process of
a.exe
. - Load
b.dll
into the address space ofa.exe
. - Execute the
DllMain
function ofb.dll
. - Load
c.dll
into the address space ofa.exe
. - Execute the
DllMain
function ofd.dll
. - Resume execution of
a.exe
.
Inject was greatly inspired by Risc's use of DLL-injection in diablo-improvements.
The source code and any original content of this repository is hereby released into the public domain.