呵呵……
自己想了个办法脱壳完毕,请验证正确否
开始不是有个anti debug吗
不知道怎么去掉
不过看了下代码
01001000 N> 6A 70 push 70
01001002 68 002E0001 push NOTEPAD.01002E00
01001007 E8 F4050000 call NOTEPAD.01001600
0100100C 33DB xor ebx,ebx
0100100E 53 push ebx
0100100F E8 FE060000 call NOTEPAD.01001712
01001014 8945 F0 mov dword ptr ss:[ebp-10],eax
01001017 68 D418B682 push 82B618D4
0100101C FF75 F0 push dword ptr ss:[ebp-10]
0100101F 6A 00 push 0
01001021 E8 15060000 call NOTEPAD.0100163B
01001026 8BF8 mov edi,eax
01001028 FFD7 call edi
0100102A 66:8138 4D5A cmp word ptr ds:[eax],5A4D
0100102F 75 1F jnz short NOTEPAD.01001050
01001031 8B48 3C mov ecx,dword ptr ds:[eax+3C]
01001034 03C8 add ecx,eax
01001036 8139 50450000 cmp dword ptr ds:[ecx],4550
0100103C 75 15 jnz short NOTEPAD.01001053
0100103E 894D E0 mov dword ptr ss:[ebp-20],ecx
01001041 0FB741 18 movzx eax,word ptr ds:[ecx+18]
01001045 3D 0B010000 cmp eax,10B
0100104A 74 1F je short NOTEPAD.0100106B
0100104C 3D 0B020000 cmp eax,20B
01001051 74 05 je short NOTEPAD.01001058
01001053 895D E4 mov dword ptr ss:[ebp-1C],ebx
01001056 EB 27 jmp short NOTEPAD.0100107F
01001058 83B9 84000000 0E cmp dword ptr ds:[ecx+84],0E
0100105F ^ 76 F2 jbe short NOTEPAD.01001053
01001061 33C0 xor eax,eax
01001063 3999 F8000000 cmp dword ptr ds:[ecx+F8],ebx
01001069 EB 0E jmp short NOTEPAD.01001079
0100106B 8379 74 0E cmp dword ptr ds:[ecx+74],0E
0100106F ^ 76 E2 jbe short NOTEPAD.01001053
01001071 33C0 xor eax,eax
01001073 3999 E8000000 cmp dword ptr ds:[ecx+E8],ebx
01001079 0F95C0 setne al
0100107C 8945 E4 mov dword ptr ss:[ebp-1C],eax
0100107F 895D FC mov dword ptr ss:[ebp-4],ebx
01001082 68 ADD13441 push 4134D1AD
01001087 FF75 F0 push dword ptr ss:[ebp-10]
0100108A 6A 00 push 0
0100108C E8 AA050000 call NOTEPAD.0100163B
01001091 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
01001094 8941 10 mov dword ptr ds:[ecx+10],eax
01001097 50 push eax
01001098 FF75 F0 push dword ptr ss:[ebp-10]
0100109B E8 2F070000 call NOTEPAD.010017CF
010010A0 E8 2A080000 call NOTEPAD.010018CF
010010A5 8B55 F8 mov edx,dword ptr ss:[ebp-8]
010010A8 81EA D0170000 sub edx,17D0
010010AE B9 00030000 mov ecx,300
010010B3 52 push edx
010010B4 51 push ecx
010010B5 E8 81080000 call NOTEPAD.0100193B
010010BA E8 C70A0000 call NOTEPAD.01001B86
010010BF 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
010010C2 51 push ecx
010010C3 E8 5E060000 call NOTEPAD.01001726
010010C8 E8 450B0000 call NOTEPAD.01001C12
010010CD 83C4 14 add esp,14
010010D0 5F pop edi
010010D1 5E pop esi
010010D2 5B pop ebx
010010D3 83C4 70 add esp,70
010010D6 8B4D 00 mov ecx,dword ptr ss:[ebp]
010010D9 64:890D 00000000 mov dword ptr fs:[0],ecx
010010E0 83C4 14 add esp,14
010010E3 E8 00000000 call NOTEPAD.010010E8
010010E8 58 pop eax
010010E9 05 181D0000 add eax,1D18
010010EE 8B40 18 mov eax,dword ptr ds:[eax+18]
010010F1 FFE0 jmp eax
最后一句jmp eax
估计是个关键跳转
但有OD单步到不了那里,反调试
那我就直接在原来代码上做点手脚改下
如下
01001000 N> 6A 70 push 70
01001002 68 002E0001 push NOTEPAD.01002E00
01001007 E8 F4050000 call NOTEPAD.01001600
0100100C 33DB xor ebx,ebx
0100100E 53 push ebx
0100100F E8 FE060000 call NOTEPAD.01001712
01001014 8945 F0 mov dword ptr ss:[ebp-10],eax
01001017 68 D418B682 push 82B618D4
0100101C FF75 F0 push dword ptr ss:[ebp-10]
0100101F 6A 00 push 0
01001021 E8 15060000 call NOTEPAD.0100163B
01001026 8BF8 mov edi,eax
01001028 FFD7 call edi
0100102A 66:8138 4D5A cmp word ptr ds:[eax],5A4D
0100102F 75 1F jnz short NOTEPAD.01001050
01001031 8B48 3C mov ecx,dword ptr ds:[eax+3C]
01001034 03C8 add ecx,eax
01001036 8139 50450000 cmp dword ptr ds:[ecx],4550
0100103C 75 15 jnz short NOTEPAD.01001053
0100103E 894D E0 mov dword ptr ss:[ebp-20],ecx
01001041 0FB741 18 movzx eax,word ptr ds:[ecx+18]
01001045 3D 0B010000 cmp eax,10B
0100104A 74 1F je short NOTEPAD.0100106B
0100104C 3D 0B020000 cmp eax,20B
01001051 74 05 je short NOTEPAD.01001058
01001053 895D E4 mov dword ptr ss:[ebp-1C],ebx
01001056 EB 27 jmp short NOTEPAD.0100107F
01001058 83B9 84000000 0E cmp dword ptr ds:[ecx+84],0E
0100105F ^ 76 F2 jbe short NOTEPAD.01001053
01001061 33C0 xor eax,eax
01001063 3999 F8000000 cmp dword ptr ds:[ecx+F8],ebx
01001069 EB 0E jmp short NOTEPAD.01001079
0100106B 8379 74 0E cmp dword ptr ds:[ecx+74],0E
0100106F ^ 76 E2 jbe short NOTEPAD.01001053
01001071 33C0 xor eax,eax
01001073 3999 E8000000 cmp dword ptr ds:[ecx+E8],ebx
01001079 0F95C0 setne al
0100107C 8945 E4 mov dword ptr ss:[ebp-1C],eax
0100107F 895D FC mov dword ptr ss:[ebp-4],ebx
01001082 68 ADD13441 push 4134D1AD
01001087 FF75 F0 push dword ptr ss:[ebp-10]
0100108A 6A 00 push 0
0100108C E8 AA050000 call NOTEPAD.0100163B
01001091 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
01001094 8941 10 mov dword ptr ds:[ecx+10],eax
01001097 50 push eax
01001098 FF75 F0 push dword ptr ss:[ebp-10]
0100109B E8 2F070000 call NOTEPAD.010017CF
010010A0 E8 2A080000 call NOTEPAD.010018CF
010010A5 8B55 F8 mov edx,dword ptr ss:[ebp-8]
010010A8 81EA D0170000 sub edx,17D0
010010AE B9 00030000 mov ecx,300
010010B3 52 push edx
010010B4 51 push ecx
010010B5 E8 81080000 call NOTEPAD.0100193B
010010BA E8 C70A0000 call NOTEPAD.01001B86
010010BF 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
010010C2 51 push ecx
010010C3 E8 5E060000 call NOTEPAD.01001726
010010C8 E8 450B0000 call NOTEPAD.01001C12
010010CD 83C4 14 add esp,14
010010D0 5F pop edi
010010D1 5E pop esi
010010D2 5B pop ebx
010010D3 83C4 70 add esp,70
010010D6 8B4D 00 mov ecx,dword ptr ss:[ebp]
010010D9 64:890D 00000000 mov dword ptr fs:[0],ecx
010010E0 83C4 14 add esp,14
010010E3 E8 00000000 call NOTEPAD.010010E8
010010E8 CC int3
010010E9 58 pop eax
010010EA 05 181D0000 add eax,1D18
010010EF 8B40 18 mov eax,dword ptr ds:[eax+18]
010010F2 FFE0 jmp eax
就在010010E3处家个Int3异常,保存文件
设置系统默认调试器为OD,运行文件,出错,点调试,OD打开了,OK绕过了ANTI DEBUG了
进去后用ESP定律直接到达OEP
用OD插件脱壳直接完成
本人新手菜鸟,只能想到这个笨办法,盼望那位大牛贴出好方法,
上传的附件: