巧设断点,手脱yoda's cryptor 1.2壳
1、PEiD查壳:
yoda's cryptor 1.2
2、OD载入,忽略所有异常,隐藏OD,程序断到入口点,
0040D060 60 pushad
0040D061 E8 00000000 call Yoda's_C.0040D066
0040D066 5D pop ebp
0040D067 81ED F31D4000 sub ebp,Yoda's_C.00401DF3
0040D06D B9 7B090000 mov ecx,97B
貌似可以使用ESP定律法,其实,是不能使用ESP定律的。此时,点击:“查看”->“内存”,在.rsrc区段上,设置内存断点,F9运行,此时
断下,然后再次点击:“查看”->“内存”,在.text区段上设置内存断点,然后F9,程序断到了如下地址:
0040D769 0000 add byte ptr ds:[eax],al
0040D76B 0000 add byte ptr ds:[eax],al
0040D76D 0000 add byte ptr ds:[eax],al
0040D76F 0000 add byte ptr ds:[eax],al
并且,其左下角显示:访问违规:写入到[00000000] - 使用|Shift+F7/F8/F9|键忽略异常以继续执行,此时,shift + F9,便来到了如下位置:
004010CC 55 push ebp
004010CD 8BEC mov ebp,esp
004010CF 83EC 44 sub esp,44
004010D2 56 push esi
004010D3 FF15 E0634000 call dword ptr ds:[4063E0] ; kernel32.GetCommandLineA
004010D9 8BF0 mov esi,eax
这就是OEP的位置,此时脱壳就可以了!

浙公网安备 33010602011771号