0x00 引言
加壳(Packer),是指对可执行程序加密或资源压缩的过程,加壳后的程序可以直接运行。而脱壳是加壳的逆向过程,即将已经加过壳的可执行程序恢复到无壳的状态。
0x01 加壳
目标: 加壳过程中,对可执行程序加密,可防止IDA等静态工具反汇编分析。
前提:
1.准备好一个需要加壳的可执行程序target.exe;
2.准备好一个壳shell.exe(能添加节的可执行程序)。
步骤:
准备好一个加壳工具,其实现的功能如下:
1.将可执行程序target.exe、壳shell.exe加载如内存;
2.向shell.exe添加一个区段(文件大小、区段数量);
3.将shell.exe源OEP修改为新的区段地址;
4.将target.exe代码段加密(如xor加密);
5.在shell.exe新的区段OEP处,添加解密代码(如xor);