手脱Yoda's Crypter v1.2.98.E

1、PEiD查壳:
   yoda's cryptor 1.2 ,其实是不太准确的,这是一个Yoda's Crypter v1.2.98的壳;

2、OD载入,隐藏OD,忽略所有异常,按shift+F9,此时,其左下角显示:访问违规:写入到[00000000] - 使用|Shift+F7/F8/F9|键忽略异常以继续执行,此时,观察右下角的堆栈,显示如下数据:
  
   0012FFBC   0012FFE0  指针到下一个 SEH 记录
   0012FFC0   0040D70C  SE 句柄
   0012FFC4   7C817077  返回到 kernel32.7C817077

  在代码窗口中,CTRL+G,输入0040D70C,回车,并在跳转到的代码行上,F2设置断点,按Shift + F9,然后进入单步跟踪的过程,当代码来到如下蓝色代码行时:
  
  0040D70C     55              push ebp
  0040D70D     8BEC            mov ebp,esp
  0040D70F     57              push edi
  0040D710     8B45 10         mov eax,dword ptr ss:[ebp+10]
  0040D713     8BB8 C4000000   mov edi,dword ptr ds:[eax+C4]
  0040D719     FF37            push dword ptr ds:[edi]
  0040D71B     33FF            xor edi,edi
  0040D71D     64:8F07         pop dword ptr fs:[edi]
  0040D720     8380 C4000000 0>add dword ptr ds:[eax+C4],8
  0040D727     8BB8 A4000000   mov edi,dword ptr ds:[eax+A4]
  0040D72D     C1C7 07         rol edi,7
  0040D730     89B8 B8000000   mov dword ptr ds:[eax+B8],edi         ; Yoda's_C.004010CC
  0040D736     B8 00000000     mov eax,0
  0040D73B     5F              pop edi
  0040D73C     C9              leave
  0040D73D     C3              retn

  我们看到了熟悉的地址:004010CC,于是,再CTRL+G,输入004010CC,回车,然后F2下断,shift+F9,即可来到真正的OEP,接下来就是脱壳,此处就不再赘述了。

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