6.2.2 可执行文件提取

“我们得到汇编的程序并测试成功后,就会生成EXE可执行文件。”老师说道,“如果是调试版,会在Debug目录下;如果是发表版,会在Release目录下。如图6-14。”

“我们用任意一款16进制编辑器打开EXE文件。我这里用的是WinHex(光盘有收录),大家可以看到,EXE的开始是4D 5A,就是MZ标志;在C0那排有一个PE标志,如图6-15。”

“我们在EXE文件数据中查找,找到ShellCode的开头,如这里是55 83 EC 64,如图6-16。”

“找到ShellCode的开始数据之后,我们将其复制,粘贴出来,也可轻松完成ShellCode的提取了。”

“哦!真是好方法啊。但定位ShellCode的开始和结束有点麻烦啊!”

“我们可以加入一些标志,比如连续的几个‘0x90’(即NOP)来表示ShellCode的开始和结束。方法是人想出来的,路是人走出来的。”

“好,我们再来看一个更经典的方法——直接利用C语言写程序,然后自动提取打印出ShellCode来。”