Examples of software packers
We use the well-known open source compiler Yasm to compile our written stub.asm
source into COFF format, sub.bin
, which contains the stub mechanical code, as shown in Figure 8.18:
Figure 8.18 – Using Yasm to compile stub.asm
Then we can compile our C/C++ packer into a utility program using MinGW
, as shown in Figure 8.19:
Figure 8.19 – Compiling our packer
Using our compiled packer to pack for an old game, NS-Shaft, our compiled packer will compress the contents of the program and inject stub.bin
as the initialization engine to output the packed program, down_protected.exe
. Then we double-click to open down_protected.exe
.
As shown in Figure 8.20, the game program still runs normally but the static size is successfully compressed from 565 KB to 280 KB, which confirms the feasibility of our compressed packer design:
Figure 8.20 – The result of the...