首页
社区
课程
招聘
UltraProtect 1.x之 Divx Avi Asf Wmv Wma Rm Rmvb V3.00 脱壳修复
发表于: 2004-11-29 14:41 9553

UltraProtect 1.x之 Divx Avi Asf Wmv Wma Rm Rmvb V3.00 脱壳修复

David 活跃值
20
2004-11-29 14:41
9553

【脱文标题】 UltraProtect 1.x之 Divx Avi Asf Wmv Wma Rm Rmvb V3.00 脱壳修复

【脱文作者】 weiyi75[Dfcg]

【作者邮箱】 [email]weiyi75@sohu.com[/email]

【作者主页】 Dfcg官方大本营+龙族联盟论坛

【使用工具】 Peid,UnkillOD,Loadpe,ImportREC,Winhex

【破解平台】 Win2000/XP

【软件名称】 Divx Avi Asf Wmv Wma Rm Rmvb V3.00

【下载地址】 本地下载

【软件简介】只需轻松的一次点击就可以修复不能拖动的或者不能播放的divx avi asf wmv wma rm rmvb文件。Divx Avi Asf Wmv Wma Rm Rmvb 修复器可以修复你通过http,ftp,mms,rtsp方式由于某些原因没有下载完全的divx avi asf wmv wma rm rmvb文件。修复后的文件可以流畅的播放,自由的拖动。Divx Avi Asf Wmv Wma Rm Rmvb 修复器也可以修复在播放过程中不能拖动的divx avi asf wmv wma rm rmvb文件。修复后的文件可以随意的拖动。Divx Avi Asf Wmv Wma Rm Rmvb 修复器还有另一个功能,他可以强行修复部分损坏的divx avi asf wmv wma rm rmvb文件。修复后的文件可以跳过坏的数据块,继续播放。如果一些播放器,例如Mediaplayer,realplayer提示dvix avi asf wmv wma rm rmvb文件不能播放或文件损坏,都可以尝试用Divx Avi Asf Wmv Wma Rm Rmvb 修复器来修复。
      
【软件大小】 1.30M

【加壳方式】 UltraProtect 1.x -> RISCO Software Inc.

【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:

--------------------------------------------------------------------------------

【前言】

最近经常有人问UltraProtect 1.x加密的软件如何搞,其实它和ACProtect 1.x是一家的。此类文章网上已经不少了,这些朋友没有注意收集,实在是不该的。

这个程序自发布起就没有搞定,升级了N代,历代版本全部保留了。随着脱壳经验的积累和无数次的失败,失败是修复后说是无效的Win32文件。脱壳修复破解这个软件是我的心愿,脱壳修复今天已经完成了。

既然雁南飞大侠可以补上解压的区段,我们都是可以做到的。

【脱壳内容】

首先PEID查壳,为UltraProtect 1.x -> RISCO Software Inc.

这个壳用普通OD载入F9运行立即Over,可以用二哥提供的杀不死的Debug系列工具调试,论坛里面搜索可以找到UnkillOD。

载入程序,全自动隐藏OD,异常设置不忽略内存异常,其余全部忽略

0070B000 v>  60                  pushad //入口
0070B001     F9                  stc
0070B002     81CE 3F0AFAA4       or esi,A4FA0A3F
0070B008     66:8BC2             mov ax,dx
0070B00B     50                  push eax
0070B00C     E8 01000000         call videofix.0070B012
0070B011     73 58               jnb short videofix.0070B06B
0070B013     58                  pop eax
0070B014     FC                  cld
0070B015     E8 01000000         call videofix.0070B01B
0070B01A   - EB 83               jmp short videofix.0070AF9F

F9运行

00710E91     CD 01               int 1 //唯一一次内存异常。
00710E93     40                  inc eax
00710E94     40                  inc eax
00710E95     0BC0                or eax,eax
00710E97     0F85 B6000000       jnz videofix.00710F53
00710E9D     60                  pushad
00710E9E     8DBD CEB24100       lea edi,dword ptr ss:[ebp+41B2CE]
00710EA4     4F                  dec edi
00710EA5     8D8D 2FB64100       lea ecx,dword ptr ss:[ebp+41B62F]
00710EAB     83C1 02             add ecx,2
00710EAE     2BCF                sub ecx,edi
00710EB0     C1E9 02             shr ecx,2
00710EB3     E8 B4D8FFFF         call videofix.0070E76C

Alt+M打开内存镜像

内存镜像,项目 12
地址=00401000 //对准这里下F2访问断点,Shift+F9飞向光明之巅
大小=000E5000 (937984.)
Owner=videofix 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE

004E5850     55                  push ebp    //OD脱壳插件复制下入口偏移E5850,LoadPe脱壳
004E5851     8BEC                mov ebp,esp
004E5853     83C4 F0             add esp,-10
004E5856     53                  push ebx
004E5857     B8 B0534E00         mov eax,videofix.004E53B0
004E585C     E8 0B17F2FF         call videofix.00406F6C
004E5861     8B1D 3C804E00       mov ebx,dword ptr ds:[4E803C]      ; videofix.004E9C38
004E5867     8B03                mov eax,dword ptr ds:[ebx]
004E5869     E8 6617F8FF         call videofix.00466FD4
004E586E     8B0D 6C814E00       mov ecx,dword ptr ds:[4E816C]      ; videofix.004E9EA4
004E5874     8B03                mov eax,dword ptr ds:[ebx]
004E5876     8B15 C8A24D00       mov edx,dword ptr ds:[4DA2C8]      ; videofix.004DA314
004E587C     E8 6B17F8FF         call videofix.00466FEC
004E5881     8B0D F8814E00       mov ecx,dword ptr ds:[4E81F8]      ; videofix.004E9E94
004E5887     8B03                mov eax,dword ptr ds:[ebx]

ImportREC修复IAT因为要用等级3跟踪,必须关闭OD,否则IR无响应。打开原程序

运行ImportREC,选择这个进程。把OEP改为E5850,点IT AutoSearch,点“Get Import”,函数无效,用“追踪层次3”全部修复。FixDump,不要运行,绝对无法运行,还要确定N次错误。

修复错误,补上动态解码代码。

载入脱壳程序,F9运行。

状态栏提示访问FEEEFEEE错误

调试窗口一片空白

堆栈友好提示

0012FF88    004046BE  返回到 dumped_.004046BE 来自 dumped_.0070C113 //直接右键反汇编中跟随
0012FF8C    00000000
0012FF90    00000000
0012FF94    004E53B0  dumped_.004E53B0

004046B9    .  E8 557A3000       call dumped_.0070C113 //这个Call执行错误,回车进去看看。
004046BE    .  33D2              xor edx,edx //这里

找到

0070C113   - FF25 94681300       jmp dword ptr ds:[136894]
0070C119   - FF25 98681300       jmp dword ptr ds:[136898]
0070C11F   - FF25 9C681300       jmp dword ptr ds:[13689C]
0070C125   - FF25 A0681300       jmp dword ptr ds:[1368A0]
0070C12B   - FF25 A4681300       jmp dword ptr ds:[1368A4]
0070C131   - FF25 A8681300       jmp dword ptr ds:[1368A8]
0070C137   - FF25 AC681300       jmp dword ptr ds:[1368AC]

等无数动态没解码的地址

载入原壳,来到

0070C113   - FF25 94681300       jmp dword ptr ds:[136894]

看信息栏

ds:[00136894]=0013788E

原来程序要访问0013XXXX区段

我们直接Ctrl+G 00130000

往下到底看看多大

00138FFF   

长度是9000

用Loadpe区域脱壳出来。

将此段加入脱壳修复程序

PE编辑器打开dumped_.exe

区段

滚动条到底

右键从磁盘载入

Region00130000-00139000.dmp

编辑刚加入的区段

虚拟地址这里不好填

如果填130000-400000=FFD30000 保存,重建Pe就提示文件不是W32程序。

反复数次都是这样,还请高手指教。

不要紧,条条大路通罗马。

填入

00D30000

保存,重建PE选项只保留验证PE选项。

OD载入脱壳程序

看我们刚加入的区段情况

内存镜像,项目 23
地址=01130000 这里地址01130000和原先的00130000有差入
大小=00009000 (36864.)
Owner=dumped_  00400000
区段=Region00
类型=Imag 01001002
访问=R
初始访问=RWE

我们

Ctrl+G去

0070C113   - FF25 94681300       jmp dword ptr ds:[136894]

修改一下

0070C113   - FF25 94681301       jmp dword ptr ds:[1136894]

看出将1300改为1301就可以了,撤消修改。

我们OD向上找到跳转表的起始位置

0070C005   - FF25 E0671300       jmp dword ptr ds:[1367E0]

WinHex载入脱壳修复程序

Ctrl+Alt+F

FF25E0671300

然后

Ctrl+Alt+H

填入搜索

1300

替换

1301

选择向下搜索,替换全部事件。

然后关闭OD,保存文件,确认更新。

运行修复程序,正常运行,但是过期了。

这是因为过期判断代码都在壳中,这段没有脱出来,故程序直接打过期标记,当然是可以爆破的,娃娃不是爆过吗?

当然几个主要功能没有RSAKEY需要的代码是无法解码的,也不可能爆破,只是了解脱壳方法而已。

--------------------------------------------------------------------------------  

【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
2
2004-11-29 14:42
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不错,DFCG以前可以看到破解论坛的,还在怎么看不到了。
2004-11-29 15:53
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
4
最初由 采臣・宁 发布
不错,DFCG以前可以看到破解论坛的,还在怎么看不到了。


注册就看到了,要求也不高
2004-11-29 16:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一直想学这个,谢谢老大
2004-11-29 16:18
0
雪    币: 98745
活跃值: (201039)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持!!!
2004-11-29 23:03
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
为什么,我下载了这个练习,结果却始终不行。为什么啊。
还是在
0070C113   - FF25 94681300       jmp dword ptr ds:[136894]
这里出错,只是我的是 jmp dword ptr ds:[13608C]
2004-12-1 11:11
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
支持!!!
2004-12-1 11:28
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
9
最初由 zygs 发布
为什么,我下载了这个练习,结果却始终不行。为什么啊。
还是在
0070C113 - FF25 94681300 jmp dword ptr ds:[136894]
这里出错,只是我的是 jmp dword ptr ds:[13608C]


Dfcg有动画,注意计算动态地址。
2004-12-3 13:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
强!
2004-12-3 13:32
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
二哥真是高产啊。什么时候我也有这样的水平啊
2004-12-3 14:43
0
雪    币: 298
活跃值: (566)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
12
为什么不把附件传到这里来啊?我正急着找它的教程呢?
2004-12-14 22:44
0
游客
登录 | 注册 方可回帖
返回
//