学二哥教程中遇到的问题 请朋友们指点 谢谢
我是新人,最近学二哥的脱壳教程。
在进阶第一篇遇到问题 脱一个加了Petite2.2加壳Win98的记事---见附件
就是碰到SEH反调试
开始压进的SEH地址是0040584C
程序在
0040D135 A4 movs byte ptr es:[edi], byte ptr ds:[esi>
会碰到暗桩Shift+F7,进入系统领空,Alt+F9回到程序领空时就到了
0040584C 5A pop edx
004058E6 64:8F05 0000000>pop dword ptr fs:[0]
004058ED 58 pop eax
004058EE 6A 00 push 0
004058F0 53 push ebx
004058F1 33DB xor ebx, ebx
004058F3 68 3D030000 push 33D
004058F8 8B0C24 mov ecx, dword ptr ss:[esp]
004058FB 0FBAE3 00 bt ebx, 0
004058FF /72 16 jb short Notepad.00405917
00405901 |64:8B35 1C00000>mov esi, dword ptr fs:[1C]
00405908 |0FBAF6 00 btr esi, 0
0040590C |64:0335 2200000>add esi, dword ptr fs:[22]
00405913 |46 inc esi
00405914 |66:33DE xor bx, si
00405917 \321C11 xor bl, byte ptr ds:[ecx+edx]
0040591A C1C3 07 rol ebx, 7
0040591D 49 dec ecx
0040591E ^ 7D DB jge short Notepad.004058FB 循环。
00405920 8D48 37 lea ecx, dword ptr ds:[eax+37] F4下来。
00405923 3119 xor dword ptr ds:[ecx], ebx
00405925 3159 04 xor dword ptr ds:[ecx+4], ebx
00405928 3159 08 xor dword ptr ds:[ecx+8], ebx
0040592B 3159 0C xor dword ptr ds:[ecx+C], ebx
0040592E 59 pop ecx
0040592F 315C11 01 xor dword ptr ds:[ecx+edx+1], ebx
00405933 33DB xor ebx, ebx
00405935 8BF2 mov esi, edx
00405937 81BA 71A8FFFF 4>cmp dword ptr ds:[edx+FFFFA871], 0D042;这个是关键的判断
00405941 75 21 jnz short Notepad.00405964
00405964 83C4 2A add esp, 2A 到这里。
00405967 - E9 A9760000 jmp Notepad.0040D015 跳走
这样一步步下来就会跳到0040D015,就会跟OVER。
按照二哥的方法:
先F9运行,提示异常,这时加密的区段解压完毕,我们Ctrl+g,填入00405941,回车。
Shift+F9继续运行,提示单步异常。Shift+F9继续,呵顺利通过单步异常,F2取消断点。
00405941 /75 21 jnz short Notepad.00405964 到这里,F8慢慢往下运行。
00405943 |81EE B7570000 sub esi, 57B7
00405949 |0FB64E 06 movzx ecx, byte ptr ds:[esi+6]
0040594D |6BC9 0A imul ecx, ecx, 0A
00405950 |66:81C1 3E00 add cx, 3E
00405955 |331E xor ebx, dword ptr ds:[esi]
00405957 |D3C3 rol ebx, cl
00405959 |83C6 04 add esi, 4
0040595C |49 dec ecx
0040595D ^|75 F6 jnz short Notepad.00405955
0040595F |3958 04 cmp dword ptr ds:[eax+4], ebx
00405962 |74 08 je short Notepad.0040596C
00405964 \83C4 2A add esp, 2A
00405967 - E9 A9760000 jmp Notepad.0040D015 这里这次没运行,被处理掉了。
0040596C BE 00600000 mov esi, 6000
就可以过了 暗转。
我就是不明白这个原理是什么,是什么代码在反调试,SEH的原理我也学习了哈,明白程序跳到0040584C的原理。
但是后来那个跳转
00405937 81BA 71A8FFFF 4>cmp dword ptr ds:[edx+FFFFA871], 0D042;这个是关键的判断
00405941 75 21 jnz short Notepad.00405964
00405964 83C4 2A add esp, 2A 到这里。
00405967 - E9 A9760000 jmp Notepad.0040D015 跳走
是怎么处理的, 我就看不明白了!
希望知道的朋友指点一下,谢谢了。加我QQ告诉我也行。34085905
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!