0x01---PEid查壳

0x02---分离重定位

此步骤主要是为了关闭随机基址;
0x03---ESP定律法查找OEP

在第二个retn的位置进入;

进入jmp跳转中;

在这里,我们可以再次使用ESP定律,当然也可以数据窗口跟随图中位置,我们可以看到其在解密IAT,当跑完IAT,释放堆空间后,找到大跳,就是OEP了;

进入jmp;

看到76916B15 Kernel32.VirtualFree是在释放用来解密IAT的堆空间,在这之后,单步步过找到jmp大跳就是OEP了;

成功到达OEP!!!

取消重建输入表,将其dump出来,之后就是修复IAT表,跟其它一样;

成功脱壳;
总结:由于之前脱过ASPack v2.12,当第一次使用ESP定律后的jmp大跳后的pushad,以为这里就是OEP位置,脱壳失败后,再通过对堆空间的查看,发现其在解密IAT表,于是当跟完IAT解密后,经过几次跳转,成功找到OEP,其实使用2次ESP定律能够更快的找到OEP,也就是说,此程序使用ASPack v2.12加了2次壳,简称壳中壳!!!