- UID
- 2466
注册时间2005-7-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【调试环境】:WinXP、PEiD、ODbyDYK v1.10、ImportREC1.42
【学习目的】:手动脱tElock 0.98 -> tE!壳
【目标软件】:tElock 0.98加壳的win98记事本
【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------------------------
1.前言
二哥的脱壳进阶教程第2课里早已有关于以tElock 0.98 -> tE!加壳软件的脱壳方法,今天无意在中国共享
天空(bbs.chinadev.net)看到一种新的脱壳方式,觉得脱法简单易学,对我这个新手来说比较直观简便,也
比较容易接受和掌握。本文可以说模仿其脱壳方法的一个过程,以此献给像我一样的菜鸟做参考,高手则略
过。
2.脱壳过程
OD载入程序,忽略所有异常,再添加以下几个异常C0000005(ACCESS VIOLATION)、C000001D(ILLEGAL
INSTRUCTION)、C000001E(INVALID LOCK SEQUENCE)、C0000096(PRIVILEGED INSTRUCTION)
入口代码:
0040DBD6 N>^\E9 25E4FFFF jmp NOTEPAD.0040C000
0040DBDB 0000 add byte ptr ds:[eax],al
0040DBDD 00E8 add al,ch
0040DBDF F6EC imul ah
0040DBE1 FA cli
0040DBE2 1E push ds
0040DBE3 DC00 fadd qword ptr ds:[eax]
0040DBE5 0000 add byte ptr ds:[eax],al
0040DBE7 0000 add byte ptr ds:[eax],al
0040DBE9 0000 add byte ptr ds:[eax],al
0040DBEB 0000 add byte ptr ds:[eax],al
用快捷alt+M 打开内存映射,来到以下的地方:
00400000 00001000 NOTEPAD PE header Imag 01001002 R RWE
00401000 00004000 NOTEPAD .text code Imag 01001002 R RWE
00405000 00001000 NOTEPAD .data data Imag 01001002 R RWE
00406000 00001000 NOTEPAD .idata Imag 01001002 R RWE
00407000 00005000 NOTEPAD .rsrc resources Imag 01001002 R RWE
在00400000 PEHeader下第一次内存断点,F9运行,shift+F9中断以下代码处:
77F51539 66:8139 4D5A cmp word ptr ds:[ecx],5A4D-----------中断在这里
77F5153E 75 1D jnz short ntdll.77F5155D
77F51540 8B51 3C mov edx,dword ptr ds:[ecx+3C]
77F51543 81FA 00000010 cmp edx,10000000
77F51549 73 12 jnb short ntdll.77F5155D
77F5154B 8D040A lea eax,dword ptr ds:[edx+ecx]
77F5154E 8945 E4 mov dword ptr ss:[ebp-1C],eax
77F51551 8138 50450000 cmp dword ptr ds:[eax],4550
77F51557 0F85 C00F0200 jnz ntdll.77F7251D
77F5155D 834D FC FF or dword ptr ss:[ebp-4],FFFFFFFF
77F51561 E8 E8760200 call ntdll.77F78C4E
77F51566 C2 0400 retn 4
再次用快捷alt+M 打开内存映射,再次来到以下的地方:
00400000 00001000 NOTEPAD PE header Imag 01001002 R RWE
00401000 00004000 NOTEPAD .text code Imag 01001002 R RWE
00405000 00001000 NOTEPAD .data data Imag 01001002 R RWE
00406000 00001000 NOTEPAD .idata Imag 01001002 R RWE
00407000 00005000 NOTEPAD .rsrc resources Imag 01001002 R RWE
这次在00401000 code下第二次内存断点,F9运行,shift+F9中断笔记本oep处:
004010CC 55 push ebp----------断在这里
004010CD 8BEC mov ebp,esp
004010CF 83EC 44 sub esp,44
004010D2 56 push esi
004010D3 FF15 E4634000 call dword ptr ds:[4063E4]
004010D9 8BF0 mov esi,eax
004010DB 8A00 mov al,byte ptr ds:[eax]
004010DD 3C 22 cmp al,22
004010DF 75 1B jnz short NOTEPAD.004010FC
004010E1 56 push esi
用OD插件直接将其dump出来,运行ImportREC1.42,填入OEP:10cc,"autosearch", 再"get import",
有无效指针,用level 3 或tElock 0.98插件追踪,发现有4个指针无法修复,将其"cut"掉,然后修复即可。修复后的
程序可正常运行。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|