【破文标题】**加密视频的爆破
【破文作者】windtrace
【破解工具】OD
【破解平台】winxp
【软件名称】初数(1-1).exe
【软件大小】69.7M
【原版下载】
***
【保护方式】注册码
【软件简介】
提醒:只有从***团购08MBA全年课程,才可以保证资料的完整性。另外有二道贩在网络上转卖我们的课程,一经发现就
立即停止下载权限,因此买二道贩的课程具有资料不完整性,另外 有部分人也称是**的课程,您可以通过qq:**或者电话
***核实,核实无误的的才为正 式授权。 (按住鼠标往下拉);
1、视频加密 ,为了保护我们资料不被二道贩转卖,所有视频加密,二道贩不具备此特点;
2、视频课程和电子格式讲义都有制作方的联系方式,二道贩不具备此特点。
【破解声明】技术研究
------------------------------------------------------------------------
【破解过程】
这个软件用了MD5加密,注册方法是把“电脑标识”和播放密码经过MD5运算后进行比较,相等则解压视频到c:\windows\drivers\media..\ 进
行播放。追踪时软件作者设了一个陷阱,追到关健call需要一个小技巧。爆破不是很完美,但是看视频没问题。
一、查壳
Borland Delphi 6.0 - 7.0 [Overlay] 相对简单
二、DEDE
找到Button1Click的RVA 00467EEC
三、OD载入,00467EEC处下断,播放密码任意,点注册,断下
00467EEC /. 55 PUSH EBP
00467EED |. 8BEC MOV EBP,ESP
00467EEF |. B9 48000000 MOV ECX,48
00467EF4 |> 6A 00 /PUSH 0
00467EF6 |. 6A 00 |PUSH 0
00467EF8 |. 49 |DEC ECX
00467EF9 |.^ 75 F9 \JNZ SHORT 复件_08-.00467EF4
00467EFB |. 53 PUSH EBX
00467EFC |. 8BD8 MOV EBX,EAX
通过字符串参考,会找到
超级字串参考, 项目 385
地址=00468051
反汇编=MOV EAX,复件_08-.004682D8
文本字串=播放密码不正确
超级字串参考, 项目 388
地址=0046821F
反汇编=MOV EAX,复件_08-.004682D8
文本字串=播放密码不正确
超级字串参考, 项目 392
地址=00468445
反汇编=MOV EAX,复件_08-.00468548
文本字串=播放密码不正确
在前两个字符串调用的地方下断会找到跳转,JE改成JNE后密码错误的提示框不再出现,但视频依然无法播放。我理解为这是程序作者的一个陷
阱,其实这并不是真正的比较处,而是为是迷惹破解而加的垃圾代码。追踪过程中会发现,第三个字符串调用处的代码从未执行过。假设这段
代码才是真正的代码,那我们现在要做的是找到这段代码未执行原因或者直接调用这段代码,我选择了第二种方法。
方法:
首先,程序断在00467EEC时,根据堆栈能找到此段代码的调用地址:
0012F1C4 0043EC46 返回到 复件_08-.0043EC46
0012F1C8 00E32C00
0012F1CC 00436B25 返回到 复件_08-.00436B25 来自 复件_08-.0043EBDC
ctrl+G 来到 0043EC46
0043EC40 |. FF93 20010000 CALL DWORD PTR DS:[EBX+120]
0043EC46 |> 5B POP EBX
0043EC47 \. C3 RETN
所以 0043EC40 |. FF93 20010000 CALL DWORD PTR DS:[EBX+120] 就是要修改的地址,先记录下来
现在转到第三个字符串参考的代码处
00468445 |. B8 48854600 MOV EAX,复件_08-.00468548 ; 播放密码不正确
0046844A |. E8 0144FCFF CALL 复件_08-.0042C850
0046844F |. A1 18C34600 MOV EAX,DWORD PTR DS:[46C318]
向上找到本段代码的起始位置
00468314 /. 55 PUSH EBP
00468315 |. 8BEC MOV EBP,ESP
00468317 |. 51 PUSH ECX
00468318 |. B9 09000000 MOV ECX,9
0046831D |> 6A 00 /PUSH 0
0046831F |. 6A 00 |PUSH 0
00468321 |. 49 |DEC ECX
数据都找到了,现在把0043EC40 |. FF93 20010000 CALL DWORD PTR DS:[EBX+120]处的代码改为
call 00468314 ,真正的注册代码可以运行了。
真正的爆破就非常简单了
0046843E |. E8 D9C7F9FF CALL 复件_08-.00404C1C
00468443 |. 74 18 JE SHORT 复件_08-.0046845D
00468445 |. B8 48854600 MOV EAX,复件_08-.00468548 ; 播放密码不正确
把00468443 |. 74 18 JE SHORT 复件_08-.0046845D 处的代码修改为
JNE SHORT 复件_08-.0046845D
保存文件,破解完成。算法用了MD5,不太麻烦,爆破是我的最爱。
由于时间关系,有几个地方不太完美,爱咱咱底吧。。。
------------------------------------------------------------------------
【破解总结】第一次改call的调用,当做一个爆破的方法吧
------------------------------------------------------------------------
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)