使用TC跟踪法,手脱FSG 1.33变形壳

1、首先,PEiD查壳:
     FSG 1.33 -> dulek/xt

2、OD载入程序,在调试选项中,忽略除“内存访问异常”之外的所有异常。先按F9,程序可以启动起来,也就是中  间没有SEH暗桩,TC跟踪法正好适合这种没有SEH暗桩的加壳程序。接下来,就介绍如何使用TC跟踪法实现脱壳。

3、重新载入程序,程序断在蓝色代码处,如下所示:

    00430764     BE A4014000     mov esi,FSG_1_33.004001A4
    00430769     AD              lods dword ptr ds:[esi]
    0043076A     93              xchg eax,ebx
    0043076B     AD              lods dword ptr ds:[esi]
    0043076C     97              xchg eax,edi
    0043076D     AD              lods dword ptr ds:[esi]

4、此时,选择菜单中“查看”->“内存”,出现如下显示:
   00422000 | 0000F000 |  FSG_1_33 |          | SFX,imports,resources | ...
   在命令行处,输入如下命令:tc eip<00422000 ,地址范围正是蓝色标记的地址,然后回车,此时,看到左上角显示为“跟踪”,过了一会,断到了如下蓝色标记的代码处:
   00402666     55              push ebp                                       ; COMCTL32.#241
   00402667     8BEC            mov ebp,esp
   00402669     6A FF           push -1
   0040266B     68 00674100     push FSG_1_33.00416700
   00402670     68 FC504000     push FSG_1_33.004050FC
   00402675     64:A1 00000000  mov eax,dword ptr fs:[0]
   0040267B     50              push eax
   0040267C     64:8925 0000000>mov dword ptr fs:[0],esp
   00402683     83EC 58         sub esp,58
   00402686     53              push ebx
   00402687     56              push esi
   00402688     57              push edi
   00402689     8965 E8         mov dword ptr ss:[ebp-18],esp
   0040268C     FF15 14524100   call dword ptr ds:[415214]       ; kernel32.GetVersion
   00402692     33D2            xor edx,edx

此处就是OEP,脱壳就不再累述了。

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