手脱PETITE

1、PEiD查壳:
    PEtite 2.x [Level 0] -> Ian Luck

2、OD载入,隐藏OD,忽略除内存访问异常外的所有异常,程序断到蓝色代码处:

    0040D10B     B8 00D04000     mov eax,PETITE_9.0040D000
    0040D110     6A 00           push 0
    0040D112     68 9CCA4000     push PETITE_9.0040CA9C
    0040D117     64:FF35 0000000>push dword ptr fs:[0]
    0040D11E     64:8925 0000000>mov dword ptr fs:[0],esp
    0040D125     66:9C           pushfw
    0040D127     60              pushad
    0040D128     50              push eax
    0040D129     8BD8            mov ebx,eax

  然后,F8单步跟踪至红色代码处是,查看ESP的变化,此时,使用ESP定律,按两次Shift+F9后,代码来到蓝色代码行:

    0040D105     61              popad
    0040D106     66:9D           popfw
    0040D108     83C4 0C         add esp,0C
    0040D10B P>- E9 BC3FFFFF     jmp PETITE_9.004010CC
    0040D110   - E9 1B41207D     jmp SHELL32.ShellExecuteA

然后F8单步跟踪至红色代码行,就跳转到了OEP处。使用ImportREC修复时,选择“跟踪级别1”修复,就可以修复所有的无效指针。

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