手脱tElock壳

1、PEiD查壳:
    tElock 0.98b1 -> tE!

2、OD载入,隐藏OD,在异常选项中,去掉所有忽略的异常,Shift+F9,一共需要按21次,程序就跑起来了,因此,我们使用最后一次异常法,脱壳。

3、重新载入程序,Shift+F9,按至20次时,程序来到如下蓝色命令行处:

   0040D817     73 DC           jnb short tElock.0040D7F5
   0040D819     CD20 64678F06   vxdcall 68F6764
   0040D81F     0000            add byte ptr ds:[eax],al
   0040D821     58              pop eax
   0040D822     61              popad

此时,查看右下角的堆栈窗口中,数据如下:
   0012FF58   0012FFE0  指针到下一个 SEH 记录
   0012FF5C   0040D7FB  SE 句柄
   0012FF60   00000000

我们来到代码窗口,按CTRL+G,输入0040D7FB,在此地址上,F2设置断点,shift+F9,运行,然后进入单步跟踪的过程,此过程的要点是“只许向下跳,不许向回跳”。当单步跟踪来到如下地址时:

0040D7AF     61              popad
0040D7B0     FF6424 D0       jmp dword ptr ss:[esp-30]              ; tElock.004010CC
0040D7B4     F1              int1
0040D7B5     0000            add byte ptr ds:[eax],al

蓝 色代码区域,即是跳转到OEP,脱壳,使用ImportREC修复时,遇到了问题,其中有131个为解决的指针,使用跟踪级别1,2,3均失败,那该怎么 办呢?我们可以打开加壳程序,使用跟踪级别3试试,唉,是可以的,修复到最后,仍然有4个为解决的指针,直接剪切掉即可,然后在ImportREC中,点 击“保存树文件”。然后ImportREC中,再点击正在脱壳的程序,点击“载入树文件”,一看指针全部都有效了,此时,可以点击“修复转储文件”了,选 中已经脱壳保存的程序,即可!

posted @ 2012-07-12 11:07  monkeycd  阅读(509)  评论(0)    收藏  举报