我们先用Ollydbg(以下简称OD)载入这个程序,这是它会有个警告,我们不用管它直接点否.<>
第一步:我们按F8单步向下走.注意观察OD右上角的寄存器中ESP和EIP这两个有没有同时变红,我们一直单步向下走,直到ESP和EIP同时变红就停止向下走.
第二步:当ESP变红以后.我们右击ESP变红地址,点在数据窗口中跟随,然后我们再来到数值窗口.单击右键选择断点-硬件访问-字,再按F9运行程序,再按F8单步向下走,最后我们就来到OEP了.
第三步:我们在OEP地址上右键单击用ollyDump脱壳调试进程,然后再把修正为里的数据复制下来.因为我们一会修复程序的时候会用到.复制以后我们再点脱壳,然后就是保存文件,我们随便给个名字,但是要注意它的格式是EXE.
第四步:有些工具脱壳以后还要修复,所以我们现在来进行修复,我们应用到的工具是ImportREC Classic.我们首先运行需要脱壳的程序(注意是没脱壳以前的工具,不是刚刚保存的那个程序) ,我们再打开ImportREC Classic.再在附加到一个活动进程下面选择要脱壳的那个程序的进程(这里就是为什么我们要运行那个程序,如果我们不运行,就没有这个程序的进程.就无法修复,所以我们要先运行这个程序)然后再把刚修正为那里复制的数据粘贴到OEP框里点再自动查找IAT.它会有个提示说"可能发现原始的IAT地址"我们点确定,再点获取输入表.最后点修复转存文件,这里我们要注意了.这里我们选刚在OD脱过壳保存的那个程序,到这里这个过程就结束了.我们运行下脱过壳的这个程序.看看能不能运行.如果能运行,我们再用PEID查壳工具查下壳.现在已经把壳脱掉了如图2所示我们可以看到这是用delphi编写的一个小工具.