【原创】挑战未知壳 Trial-Reset 3.0RC2
【软件名称】:Trial-Reset 3.0RC2
【相关链接】:www.pediy.com/tools/unpack/assistant/Trial-Reset/Trial-Reset.RAR
【简要说明】:可以去除大多数壳的试用时间限制。
【使用工具】:OLLICE LordPE Import Reconstructor Peid 看雪有下载
【破解平台】:WinXP
【破解作者】:啊CR
【详细过程】:本来是要汉化这款软件 的可是发现没有可汉化资源,
用Peid一查发现是[什么也没发现] 用Fi说是[WIN32 GUi]
使用LoadPE转储一下进程发现体积大了好几倍[143 KB->0.98M],断定是加了壳
于是用Peid的Generic Unapcker 插件尝试脱壳.结果找到一个入口点[004D26F0]但无法转储,很明显需要动用OLLICE了.
go to 004D26F0 发现是00,显然此处还没有解压,下硬件执行断点.竟然没有断下[Generic Unapcker OEP的准确率不高]但没有什么异常 猜想是一个简单的压缩壳.
Ctrl+F2重新载入程序停在
004D7A35 > B8 477A0D00 mov eax, 0D7A47
004D7A3A BA 00004000 mov edx, 00400000
004D7A3F 03C2 add eax, edx
004D7A41 FFE0 jmp eax
004D7A43 B1 15 mov cl, 15
004D7A45 0000 add [eax], al
004D7A47 60 pushad
看不出什么 怎么下断点呢?既然软件要解压才能运行原来的代码就下内存写入断点 断点下在这里 假入口点[004D26F0] 因为这里是程序内部
004D7AEF AD lods dword ptr [esi]
004D7AF0 8BC8 mov ecx, eax
004D7AF2 F3:A4 rep movs byte ptr es:[edi], byte ptr> 停在这行
004D7AF4 4A dec edx 这里下F2断点,F9运行 也可以直接 F4
004D7AF5 ^ 75 F3 jnz short 004D7AEA
004D7AF7 59 pop ecx
代码完全解压了 OEp 还需要跟踪
F8
004D7B00 |8A07 mov al, [edi]
004D7B02 |47 inc edi
004D7B03 |2C E8 sub al, 0E8
004D7B05 |3C 01 cmp al, 1
004D7B07 ^|77 F7 ja short 004D7B00
004D7B09 |8B07 mov eax, [edi]
004D7B0B |3AC2 cmp al, dl
004D7B0D ^|75 F1 jnz short 004D7B00
004D7B0F 32C0 xor al, al
004D7B11 0FC8 bswap eax
004D7B13 030424 add eax, [esp]
004D7B16 2BC7 sub eax, edi
004D7B18 AB stos dword ptr es:[edi]
004D7B19 ^ E2 E5 loopd short 004D7B00
004D7B1B 55 push ebp 上面循环,这里F4
F8
004D7B2B AC lods byte ptr [esi]
004D7B2C 84C0 test al, al
004D7B2E ^ 75 FB jnz short 004D7B2B
004D7B30 AD lods dword ptr [esi]
004D7B31 85C0 test eax, eax
004D7B33 ^ 74 E7 je short 004D7B1C
004D7B35 83EE 04 sub esi, 4
004D7B38 AD lods dword ptr [esi]
004D7B39 A9 00000080 test eax, 80000000
004D7B3E 75 0B jnz short 004D7B4B
004D7B40 83EE 04 sub esi, 4
004D7B43 56 push esi
004D7B44 55 push ebp
004D7B45 FF53 04 call [ebx+4]
004D7B48 AB stos dword ptr es:[edi]
004D7B49 ^ EB E0 jmp short 004D7B2B
004D7B4B 25 FFFFFF7F and eax, 7FFFFFFF
004D7B50 50 push eax
004D7B51 55 push ebp
004D7B52 FF53 04 call [ebx+4]
004D7B55 AB stos dword ptr es:[edi]
004D7B56 ^ EB D8 jmp short 004D7B30
004D7B58 5D pop ebp 上面循环,这里F4
F8
77E59E34 > 55 push ebp ; Trial-Re.00400000
77E59E35 8BEC mov ebp, esp
77E59E37 FF75 10 push dword ptr [ebp+10]
77E59E3A FF75 0C push dword ptr [ebp+C]
77E59E3D FF75 08 push dword ptr [ebp+8]
77E59E40 6A FF push -1
77E59E42 E8 04000000 call VirtualFreeEx
77E59E47 5D pop ebp
77E59E48 C2 0C00 retn 0C
Alt+F9 返回主程序领空
F8
004D7A34 61 popad
004D7A35 > B8 93810000 mov eax, 8193 8193是 入口点
004D7A3A BA 00004000 mov edx, 00400000
004D7A3F 03C2 add eax, edx
004D7A41 FFE0 jmp eax 进 入口点
.......
00408193 > B8 04744100 mov eax, 00417404
00408198 50 push eax
00408199 E8 EEFFFFFF call <jmp.&msvbvm60.ThunRTMain>
0040819E 0000 add [eax], al
004081A0 0000 add [eax], al
004081A2 0000 add [eax], al
004081A4 3000 xor [eax], al
004081A6 0000 add [eax], al
004081A8 40 inc eax
004081A9 0000 add [eax], al
004081AB 0000 add [eax], al
004081AD 0000 add [eax], al
004081AF 00E3 add bl, ah
004081B1 65:5C pop esp
004081B3 5E pop esi
很明显 VB程序 不要关闭OLLICE 打开LoadP选中 Trial-Reset.exe进程 单击右键 选择 的一项 完全脱壳 保存 为 dumped.exe
关闭OLLICE 运行 Trial-Reset.exe,
打开 Import Reconstructor 入口点填08193 IAT搜索 全部有效 点击修复选中dumped.exe
修复完成 dumped_.exe 就是脱壳后的文件 尝试运行 成功 脱壳完成!
【结果整理】:直接Ctrl+S 搜索以下命令序列
;004D7B58
pop ebp
pop edi
retn
然后 Alt+F9 返回主程序领空 然后 运行到 jmp eax 指令 最后 轻按 F7
已经在入口点了.转储修复即可.
BTW:谁知道这是什么壳
【破解感言】:此软件的壳很简单所以可以使用这种很原始的方式脱壳,但现在的壳越来越猛了......
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课