
网上下载的很老的游戏插件.一看加了壳 正好当练习.
按教程脱了半天迷糊了。。找不到OEP。我晕。
请路过的大牛 给我些提示。如果是双重壳,我可没那个实力脱呀。哈哈。
请看我的过程。
OD载入停在EP。
00B60957 > 55 push ebp
00B60958 8BEC mov ebp,esp
00B6095A 53 push ebx
00B6095B 8B5D 08 mov ebx,dword ptr ss:[ebp+0x8]
00B6095E 56 push esi
00B6095F 8B75 0C mov esi,dword ptr ss:[ebp+0xC]
00B60962 57 push edi
00B60963 8B7D 10 mov edi,dword ptr ss:[ebp+0x10]
00B60966 85F6 test esi,esi
00B60968 75 09 jnz short For3G.00B60973
00B6096A 833D 7CC6B700 0>cmp dword ptr ds:[0xB7C67C],0x0
00B60971 EB 26 jmp short For3G.00B60999
00B60973 83FE 01 cmp esi,0x1
00B60976 74 05 je short For3G.00B6097D
00B60978 83FE 02 cmp esi,0x2
00B6097B 75 22 jnz short For3G.00B6099F
.....
下断 BP GetModuleHandleA+5 F9
第一次 (堆栈)
0006EDAC /0006EDE4
0006EDB0 |773D8099 返回到 comctl32.773D8099 来自 kernel32.GetModuleHandleA
0006EDB4 |77372E84 comctl32.77372E84
0006EDB8 |773E0598 comctl32.773E0598
第二次
0006EDF0 /0006EE10
0006EDF4 |773D52E6 返回到 comctl32.773D52E6 来自 kernel32.GetModuleHandleA
0006EDF8 |77372E84 comctl32.77372E84
0006EDFC |7C823EB7 kernel32.GetProcessHeap
0006EE00 |00084AA8
第三次
000697E8 /0006EB14
000697EC |00DA5838 返回到 00DA5838 来自 kernel32.GetModuleHandleA
000697F0 |00DB9BAC ASCII "kernel32.dll"
000697F4 |00DBAE48 ASCII "VirtualAlloc"
000697F8 |7C94A1F3 ntdll.RtlLeaveCriticalSection
第四次
000697E8 /0006EB14
000697EC |00DA5855 返回到 00DA5855 来自 kernel32.GetModuleHandleA
000697F0 |00DB9BAC ASCII "kernel32.dll"
000697F4 |00DBAE3C ASCII "VirtualFree"
000697F8 |7C94A1F3 ntdll.RtlLeaveCriticalSection
第五次
0006954C /000697EC
00069550 |00D952CA 返回到 00D952CA 来自 kernel32.GetModuleHandleA
00069554 |000696A0 ASCII "kernel32.dll"
取消断点 Alt+F9返回
00D952CA 8B0D 3C1EDC00 mov ecx,dword ptr ds:[0xDC1E3C]
00D952D0 89040E mov dword ptr ds:[esi+ecx],eax
00D952D3 A1 3C1EDC00 mov eax,dword ptr ds:[0xDC1E3C]
00D952D8 391C06 cmp dword ptr ds:[esi+eax],ebx
00D952DB 75 16 jnz short 00D952F3
00D952DD 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-0x14C]
00D952E3 50 push eax
00D952E4 FF15 B842DB00 call dword ptr ds:[0xDB42B8] ; kernel32.LoadLibraryA
00D952EA 8B0D 3C1EDC00 mov ecx,dword ptr ds:[0xDC1E3C]
00D952F0 89040E mov dword ptr ds:[esi+ecx],eax
00D952F3 A1 3C1EDC00 mov eax,dword ptr ds:[0xDC1E3C]
00D952F8 391C06 cmp dword ptr ds:[esi+eax],ebx
00D952FB 0F84 2F010000 je 00D95430 ; Magic JMP
00D95301 33C9 xor ecx,ecx
00D95303 8B07 mov eax,dword ptr ds:[edi]
00D95305 3918 cmp dword ptr ds:[eax],ebx
00D95307 74 06 je short 00D9530F
00D95309 41 inc ecx
00D9530A 83C0 0C add eax,0xC
00D9530D ^ EB F6 jmp short 00D95305
00D9530F 8BD9 mov ebx,ecx
00D95311 C1E3 02 shl ebx,0x2
00D952FB 0F84 2F010000 je 00D95430 改为 JMP
00D95430 83C7 0C add edi,0xC
00D95433 89BD 78FDFFFF mov dword ptr ss:[ebp-0x288],edi
00D95439 83C6 04 add esi,0x4
00D9543C 395F FC cmp dword ptr ds:[edi-0x4],ebx
00D9543F ^ 0F85 49FEFFFF jnz 00D9528E
00D95445 EB 03 jmp short 00D9544A ; 这里下断点
00D95447 D6 salc
00D95448 D6 salc
00D95449 8F ??? ; 未知命令
并在00D95445下断点 F9运行 断在00D95445处
取消断点 并还原 刚才做的修改..
接下来 找OEP。。
下断点 BP _set_new_handler
F9一次断下
77B8A9D7 > 8BFF mov edi,edi ; 断在这里 ALT+F9返回 并取消断点
77B8A9D9 55 push ebp
77B8A9DA 8BEC mov ebp,esp
77B8A9DC 56 push esi
77B8A9DD 6A 04 push 0x4
77B8A9DF E8 950D0100 call msvcrt._lock
77B8A9E4 8B45 08 mov eax,dword ptr ss:[ebp+0x8]
77B8A9E7 8B35 4038BC77 mov esi,dword ptr ds:[0x77BC3840]
返回到这里
00B4FE90 83C4 04 add esp,0x4
00B4FE93 837D FC 01 cmp dword ptr ss:[ebp-0x4],0x1
00B4FE97 75 0E jnz short For3G.00B4FEA7
00B4FE99 68 28BFB700 push For3G.00B7BF28
00B4FE9E FF15 50BFB700 call dword ptr ds:[0xB7BF50]
00B4FEA4 83C4 04 add esp,0x4
00B4FEA7 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00B4FEAA 8BE5 mov esp,ebp
00B4FEAC 5D pop ebp
00B4FEAD C3 retn
F8单步 00B4FEAD retn 返回到
00B4FF1B 8945 FC mov dword ptr ss:[ebp-0x4],eax
00B4FF1E 837D FC 01 cmp dword ptr ss:[ebp-0x4],0x1
00B4FF22 75 40 jnz short For3G.00B4FF64
00B4FF24 833D 48BFB700 0>cmp dword ptr ds:[0xB7BF48],0x0
00B4FF2B 74 30 je short For3G.00B4FF5D
00B4FF2D 68 6CC1B700 push For3G.00B7C16C
00B4FF32 6A 01 push 0x1
00B4FF34 8B0D 10BFB700 mov ecx,dword ptr ds:[0xB7BF10] ; For3G.00870000
00B4FF3A 51 push ecx
00B4FF3B FF15 48BFB700 call dword ptr ds:[0xB7BF48] ; 这里就是OEP的入口 没错。 F7进入!!
00B4FF41 8945 FC mov dword ptr ss:[ebp-0x4],eax
00B4FF44 837D FC 00 cmp dword ptr ss:[ebp-0x4],0x0
00B4FF48 75 0C jnz short For3G.00B4FF56
00B4FF3B 处 F7进入 来到OEP
00B170D1 60 pushad ; OEP???
00B170D2 E8 00000000 call For3G.00B170D7
00B170D7 5D pop ebp
00B170D8 81ED D7000000 sub ebp,0xD7
00B170DE 8DB5 EE000000 lea esi,dword ptr ss:[ebp+0xEE]
00B170E4 55 push ebp
00B170E5 56 push esi
00B170E6 81C5 FD010000 add ebp,0x1FD
00B170EC 55 push ebp
00B170ED C3 retn
00B170EE 14 A2 adc al,0xA2
00B170F0 ^ 74 BA je short For3G.00B170AC
00B170F2 FFF4 push esp
我只能走到此处 我直接这个是OEP 但可能是另一个壳的入口。
请童学们 帮忙啦 跑过的大牛先生 给个提示。
另外附上 这个软件的地址 本程序仅供学习脱壳使用.
腾迅微盘下载地址:
ad3K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4g2J5L8q4)9J5k6h3y4F1i4K6u0r3e0Y4N6$3z5f1I4T1
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课