各位大侠您们好!
最近脱壳一个问题,
希望得到各位兄弟帮助能顺利的把这个壳给脱掉!在这里先谢谢各位先,
因为偶很菜,可能提出的问题更是菜上菜!希望大伙不要见笑!
因为脱这个壳也有几天了,网上也有这方面的教程和文章,翻遍网上,
找到一个视频教程跟我要脱的十常像,自以为可以搞定这个壳的,但是
还是没有脱掉!下面是我的脱壳过程!
PEID查是: PELock 1.0x -> Bartosz Wojcik
OD载入
0085B05C > 81C1 8C1196B8 add ecx, B896118C 停在这里!
忽略除内存访问异常的所有异常!
shift+F9 10次后
003B3873 8909 mov dword ptr [ecx], ecx 停在这里
Ctrl+F查找 " SUB EAX,DWORD PTR SS:[EBP+ECX*4+3B14] "
到
003B4351 2B848D 143B0000 sub eax, dword ptr [ebp+ecx*4+3B14] F2下段点
Ctrl+F查找 " MOV DWORD PTR DS:[ECX],EBX "
到
003B4661 8919 mov dword ptr [ecx], ebx
汇编成
MOV DWORD PTR DS:[ECX],EAX 然后F2下段点
shift+F9后断在
003B4351 2B848D 143B0000 sub eax, dword ptr [ebp+ecx*4+3B14]
找一片“空地”我找的是
003B87E0 0000 add byte ptr [eax], al
以二进制修改
81 F9 48 01 00 00 74 24 81 F9 85 00 00 00 74 16 81 F9 84 00 00 00 74 08 2B 84 8D 14 3B 00 00 C3 2D 2B 84 8D 14 C3 2D 3B 00 00 D3 C3 2D 89 19 EB 03 C3 00 00
修改后
003B87E0 81F9 48010000 cmp ecx, 148
003B87E6 74 24 je short 003B880C
003B87E8 81F9 85000000 cmp ecx, 85
003B87EE 74 16 je short 003B8806
003B87F0 81F9 84000000 cmp ecx, 84
003B87F6 74 08 je short 003B8800
003B87F8 2B848D 143B0000 sub eax, dword ptr [ebp+ecx*4+3B14]
003B87FF C3 retn
003B8800 2D 2B848D14 sub eax, 148D842B
003B8805 C3 retn
003B8806 2D 3B0000D3 sub eax, D300003B
003B880B C3 retn
003B880C 2D 8919EB03 sub eax, 3EB1989
003B8811 C3 retn
返回SUB EAX,DWORD PTR SS:[EBP+ECX*4+3B14] 这里汇编成 call 003B87E0 然后 F2 取消断点
shift+F9后到
003B4661 8901 mov dword ptr [ecx], eax ; ntdll.RtlDeleteCriticalSection
在命令行 下: dd ecx ,F9可以看到在修复输入表了
一直按F9
一直F9至
003B6744 8900 mov dword ptr [eax], eax
按Alt+M,
在
Memory map, 项目 20
地址=00401000
大小=001C5000 (1855488.)
属主=aa 00400000
区段=.bss
包含=代码
类型=映像 01001002
访问=R
初始访问=RWE
下F2断点
然后就shift+F9
在下面断下了
005C5244 0000 add byte ptr [eax], al
005C5246 0000 add byte ptr [eax], al
005C5248 1108 adc dword ptr [eax], ecx
005C524A 04 82 add al, 82
005C524C 41 inc ecx
005C524D 2090 48249249 and byte ptr [eax+49922448], dl
005C5253 E8 6C1BE4FF call 00406DC4 停在这里
005C5258 E8 73F3FFFF call 005C45D0
005C525D E8 96F6E3FF call 004048F8
005C5262 8BC0 mov eax, eax
005C5264 0000 add byte ptr [eax], al
问题来了,据说这个地方就是伪OEP了,但这里跟教程讲的不一样。小弟实在太菜了,在这里不
知道怎么办,还请各位大侠指教!谢谢!
自已看了又看,觉得这里不是OEP的地方,大部份是空的!不知道是不是那里错了!
下面是我找的delhpi程序入口
005D170C > $ 55 push ebp
005D170D . 8BEC mov ebp, esp
005D170F . 83C4 F0 add esp, -10
005D1712 . 53 push ebx
005D1713 . 56 push esi
005D1714 . B8 6C0F5D00 mov eax, 005D0F6C
005D1719 . E8 4656E3FF call 00406D64
005D171E . 8B1D C8B85D00 mov ebx, dword ptr [5DB8C8] ; aa.005E0C8C
005D1724 . 8B35 C4B95D00 mov esi, dword ptr [5DB9C4] ; aa.005DCBF4
005D172A . 8B06 mov eax, dword ptr [esi]
005D172C . E8 EF5FEBFF call 00487720
005D1731 . 90 nop
005D1732 . 8B06 mov eax, dword ptr [esi]
005D1734 . BA B4195D00 mov edx, 005D19B4
005D1739 . E8 DA5BEBFF call 00487318
日标文件:http://tzq.jahee.com/aa.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)