PE-inject is a special library which allows developers to place their own code into Windows executable files (EXE, DLL, OCX and others). PE-inject was designed to be as simple as possible, to make modification of executables (so called PE-files) as easy as writing a “Hello world!” program. The knowledge of Assembler and Windows PE-EXE file format, which was essential before PE-inject came, is no longer required.
To inject your code into an existing executable you only need to make a DLL file with functions you want to inject into PE file, use PE-inject to place the DLL into the executable and the file is injected. From now on, every time you run the executable, the injected code will be run first and after it finishes, the old application code will start.
Power of PE-inject
With PE-inject it is possible to create EXE password protectors, PE compressors and even PE anti-cracking protectors in no time. In fact, a demo application included with PE-inject is a PE-EXE compressor written in less than 200 lines of code!
One of my projects – Empathy uses PE-inject to inject the password protection code into executables.
PE-inject is open-source!
As with many of my projects, PE-inject is released with full Delphi source code for free. Even though PE-inject is made with Delphi, you can also use it with other programming languages – in the PE-inject package, you will find a special GUI program allowing you to place any DLL file into existing executables with only a few clicks. A DLL version of PE-inject is also available.
PE-inject was tested for compatibility with many version of Windows, including: Windows NT 3.51, Windows 2000, Windows XP, Windows Server 2003, Windows Vista and Windows 95. No issues were found.