35925 发表于 2010-6-21 08:55

超级全能音频转换器1.38破解分析

【破文标题】超级全能音频转换器
【破文作者】35925
【作者邮箱】tianhao1120@163.com
【作者主页】
【破解工具】OD
【破解平台】winxp
【软件名称】超级全能音频转换器1.38
【软件大小】1.14 MB
【原版下载】http://www.mp4soft.cn/mp3.html
【保护方式】试用版只能转换20%
【软件简介】《超级全能音频转换器》是一款操作简单,功能强大的音频转换工具。 支持RM、MP2、 MP3、MPL 、AAC、WMA、 OGG、 WAV等主流音频格式之间任意转换,支持批量转换,可同时处理多个文件。 内置播放器支持多种音乐格式的播放。典型的应用于:RM转MP3、WAV/WMA转MP3、WAV/MP3转WMA、WAV/MP3/WMA转AAC。整个转换过程非常简单、只需三步即可完成转换,快速且具有高质量。

【破解声明】仅供学习交流使用
------------------------------------------------------------------------
【破解过程】第一步:OD加载,F9运行,查找可用字符串。
发现试用版只能转换原文件20%提示,双击来到程序领空,看跳转,发现
004B82AB   .E8 E8CCFFFF   CALL mp3.004B4F98
004B82B0   .8B55 B0       MOV EDX,DWORD PTR SS:
004B82B3   .8B45 FC       MOV EAX,DWORD PTR SS:
004B82B6   .8B80 C4040000 MOV EAX,DWORD PTR DS:
004B82BC   .E8 43C4F4FF   CALL mp3.00404704
004B82C1   .75 0C         JNZ SHORT mp3.004B82CF       /如果不跳,下面JMP就能跳过转换限制,改7500
004B82C3   .8B45 FC       MOV EAX,DWORD PTR SS:
004B82C6   .C680 B8040000>MOV BYTE PTR DS:,0
004B82CD   .EB 31         JMP SHORT mp3.004B8300
004B82CF   >8B45 FC       MOV EAX,DWORD PTR SS:
004B82D2   .C680 B8040000>MOV BYTE PTR DS:,1
004B82D9   .8D55 AC       LEA EDX,DWORD PTR SS:
004B82DC   .A1 F0ED4B00   MOV EAX,DWORD PTR DS:
004B82E1   .E8 52CAFAFF   CALL mp3.00464D38
004B82E6   .8D45 AC       LEA EAX,DWORD PTR SS:
004B82E9   .BA 00894B00   MOV EDX,mp3.004B8900    (试用版只能转换源文件20%的时间!)
004B82EE   .E8 CDC2F4FF   CALL mp3.004045C0
004B82F3   .8B55 AC       MOV EDX,DWORD PTR SS:
004B82F6   .A1 F0ED4B00   MOV EAX,DWORD PTR DS:
004B82FB   .E8 68CAFAFF   CALL mp3.00464D68
004B8300   >8B45 FC       MOV EAX,DWORD PTR SS:
第二步:找到字符串注册码错误,请重新输入用户名各注册码,双击来到程序领空,看跳转,发现
004B545E   .8B45 FC       MOV EAX,DWORD PTR SS:
004B5461   .E8 52C6FCFF   CALL mp3.00481AB8
004B5466   .8B45 FC       MOV EAX,DWORD PTR SS:
004B5469   .E8 1AFDFFFF   CALL mp3.004B5188
004B546E   .E8 7DE8F4FF   CALL mp3.00403CF0
004B5473   .EB 1A         JMP SHORT mp3.004B548F;可以跳过注册码错误
004B5475   >6A 40         PUSH 40               ;指向注册码错误,上面跳不能实现才好
004B5477   .68 98554B00   PUSH mp3.004B5598                        ;Register
004B547C   .68 A4554B00   PUSH mp3.004B55A4                        ;注册码错误,请重新输入用户名和注册码!
004B5481   .8B45 FC       MOV EAX,DWORD PTR SS:
004B5484   .E8 9760FBFF   CALL mp3.0046B520
004B5489   .50            PUSH EAX                                 ; |hOwner
004B548A   .E8 191DF5FF   CALL            ; \MessageBoxA
看下面这句由哪里跳过来
004B5475   >6A 40         PUSH 40               ;指向注册码错误,上面跳不能实现才好
来到
004B537E   .55            PUSH EBP
004B537F   .68 BD544B00   PUSH mp3.004B54BD
004B5384   .64:FF30       PUSH DWORD PTR FS:
004B5387   .64:8920       MOV DWORD PTR FS:,ESP
004B538A   .8B45 FC       MOV EAX,DWORD PTR SS:
004B538D   .E8 B2FEFFFF   CALL mp3.004B5244
004B5392   .84C0          TEST AL,AL
004B5394   .0F84 DB000000 JE mp3.004B5475 ; 跳向注册码错误处 ----->NOP
第三步: F9运行,程序开始注册框与标题栏上20%限制字样去除,先保存一份修改,打开修改后程序
第四步:查找字符串,在字符串 关于 处双击,到程序领空,看下面第一个跳转处
004B5F02|.A1 2CCC4B00   MOV EAX,DWORD PTR DS:   //下断观察
004B5F07|.8B00          MOV EAX,DWORD PTR DS:
004B5F09|.80B8 B9040000>CMP BYTE PTR DS:,0    //重点观察家这里数据
004B5F10|.75 12         JNZ SHORT mp3.004B5F24
004B5F12|.BA 0000FF00   MOV EDX,0FF0000
004B5F17|.8B83 18030000 MOV EAX,DWORD PTR DS:
004B5F1D|.E8 B6EFFAFF   CALL mp3.00464ED8
004B5F22|.EB 31         JMP SHORT mp3.004B5F55
004B5F24|>BA FF000000   MOV EDX,0FF                     ;
004B5F29|.8B83 18030000 MOV EAX,DWORD PTR DS:
004B5F2F|.E8 A4EFFAFF   CALL mp3.00464ED8
第五步:F9运行,点关于看一下,程序断下来了,F8观察
004B5F09|.80B8 B9040000>CMP BYTE PTR DS:,0
DS:=01
是个重要位置,先记下来,过会下内存断点用
第六步:再点软件注册里注册,看一下,先按上面第二步下好断点
点注册认证后提示,已保存注册信息,下次启动验证.那就重启程序
第七步:添加一个文件,转换一下看看
仍然只能转换20%
到这里总结一下:程序未修改前的启动提示注册框和标题栏上的20%限制已经去除,但是功能限制还没有真正解除,那就应该考虑到第五步里面那个里面数据了
第八步:在数据窗口里按Ctrl+G 输入 00A22C0D 位置,下硬件访问断点
添加一个文件,断了下来
004B7547|> \80BB B9040000>CMP BYTE PTR DS:,0;里面数据为1
004B754E|.74 66         JE SHORT mp3_1.004B75B6; 不等没跳
004B7550|.DB83 90040000 FILD DWORD PTR DS:
004B7556|.D835 047D4B00 FDIV DWORD PTR DS:
004B755C|.E8 AFB6F4FF   CALL mp3_1.00402C10
小结:接下来就有两种方法来实现功能限制解除了,一是在:004B754E 这句 je--->jmp 二是重新加载程序,在DS:处下内存写入断点,重新加载,下好内存断点,找到
004B7FAFC680 B9040000>MOV BYTE PTR DS:,1
这里把1改0
经验证,两个方法都可以解除功能限制。


------------------------------------------------------------------------
【破解总结】    软件采取了未注册版本只能转换开20%对软件进行保护,根据注册失败信息,修改成功后,再实际应用发现,尽管注册提示框和标题栏提示信息已经消失,但功能限制没有真正解除,考虑到软件一般都会在“关于”里面有对软件注册信息提示,通过查找字符串,发现CMP BYTE PTR DS:,0 ,估计这里面数据比较重要,通过下内存断点发现,里面数据为1里就只能转换20%,为0功能限制解除。接下解决问题方法就是:一是在转换软件前给里面数据赋0值;二是改跳转条件。
本程序共需要修改三个地方:
004B82C1   .75 0C         JNZ SHORT mp3.004B82CF/ 去除软件一开始运行主提示注册信息框;
004B5394   .0F84 DB000000 JE mp3.004B5475/ 去除软件注册时提示注册码错误信息;
004B7FAFC680 B9040000>MOV BYTE PTR DS:,1/把1改0,解除功能限制
整个过程,实现了软件破解,但思路还不够很明晰,有点蒙的感觉,希望下次有所进步。
------------------------------------------------------------------------
【版权声明】软件版权归原作者所有,请支持国产软件发展!仅供学习交流使用

2099502 发表于 2012-1-10 18:55

不错不错支持了

a7909a 发表于 2011-12-30 22:50

坐着沙发学习,这才叫舒服!哈哈

wo20591287 发表于 2010-6-21 10:26

:victory:支持

a6670110 发表于 2010-6-21 10:26

ye也来 学习 了

perfectiris 发表于 2010-6-21 10:12

我前两天也是玩了玩这个软件,感觉楼主说的方法很不错哦。
我只改了2个地方,运行不提示未注册了,跳过标题栏的未注册。。
不过具体能不能转换100%了我没试,我手上没视频。

lafeng 发表于 2010-6-21 09:41

坐着沙发学习,这才叫舒服!哈哈
页: [1]
查看完整版本: 超级全能音频转换器1.38破解分析