-
-
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 脱壳修复
【脱文标题】 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期)