首页
社区
课程
招聘
挑战未知壳 Trial-Reset 3.0RC2[原创]
发表于: 2006-10-14 10:31 4375

挑战未知壳 Trial-Reset 3.0RC2[原创]

2006-10-14 10:31
4375
【原创】挑战未知壳 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直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
2
这壳peid就可以脱
2006-10-14 10:35
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
3
不错
学习到解决未知壳的办法了
2006-10-14 11:52
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
Ste@lth PE 1.01 -> BGCorp
2006-10-14 19:12
0
游客
登录 | 注册 方可回帖
返回
//