迷你歌词(MiniLyrics)破解小记

来源:互联网 发布:服装网络批发平台 编辑:程序博客网 时间:2024/04/28 02:48
偶的电脑慢,P3600的CPU,而偶的工作又偏偏要与一些大个头软件打交道,诸如VS、VS.NET、BCB等,有时甚至还要运行J Builder或eclipse,自然听点音乐就不能用大个头的东东了,Media Player 9系列和RealOne都怕用,太占用资源了,因而就只能挑点小东东算了,还好,还有WINAMP这个曾经的MP3老大,各方面都不错,而且插件特爽,不过听说它今后不升级了,遗憾。其中之一的插件就是迷你歌词,可以让你一边放歌一边看歌词,就像唱卡拉OK一样,而且没有歌词的还可以连到网上去下,蛮舒服的。唯一有点不爽的就是没注册的话在每首歌开头都要出现提示你注册的文字,虽然也不怎么特别不爽,不过偶看着心里还是不很舒服。正好偶这段时间在加固汇编语言知识,准备今后搞单片机开发,不妨反汇编来看看,也试试身手。以下是注册后的迷你歌词可以取得的特遇,不过遗憾啊,要钱钱,可偶这等穷人,十多元大洋可以够偶三天的午餐了,还是有点舍不得。所以软件的作者也不要怪罪偶啊,都是穷惹的祸。---------------------------------------------------------------------------------------------------------迷你歌词(MiniLyrics)的注册费用为15元人民币/年。 注册之后可以……●通过EMail获取注册码; ●不再弹出提示对话框和显示的歌词中提示您注册;●取消试用版本只能下载50首歌曲的限制;●您可以有五万首歌词可以选择下载;●一年之内的软件升级和歌词下载都是免费的;●一年之内的免费的歌词库更新;●无限次的EMail技术支持;●您的注册使会使我们不断的改进和完善迷你歌词;好了,说了一大堆费话,转入正题。安装过迷你歌词后,目录下有这三个东西:MLSetup.exe、MLStart.exe、MiniLyrics.dll。MLSetup.exe是迷你歌词的配置文件,用来选择语言、适用的播放器什么的;MLStart.exe是迷你歌词的启动文件,当你在快捷工具栏点那个图标,运行的就是这个东东了;MiniLyrics.dll是核心,所有的功能几乎都在里面,自然,注册的模块也不例外了。所以,自然是把MiniLyrics.dll这个东东开刀了。有了以上常识后,我们尝试注册一下,点右键菜单中的注册命令,随便输入名字注册号,就输入偶的大名吧,注册名:taoyi,注册号:TAOYI,点击注册。非常自然,提示你出错了,你的运气还没有好到乱输就可以遇上的地步。不要紧,记下错误信息:"Your registration information is not correct, please contact support@viewlyrics.com for more info!”首先,用反汇编工具反汇编成汇编代码,你可用你熟悉的,偶用的是W32DASM10,主要是它显示的代码高亮,方便阅读。然后在字符串中找到它。很顺利,在10046d97处找到了它。如下:* Possible StringData Ref from Data Obj ->"Your registration information " ->"is not correct, please contact " ->"support@viewlyrics.com for more " ->"info!" |:10046D97 6894EA0810 push 1008EA94接着我们往上找,眼睛盯着屏幕,别让一处跳转跑掉了。一直找到这里:* Possible StringData Ref from Data Obj ->"obsRegCode" |:10046CC8 684CEA0810 push 1008EA4C:10046CCD 51 push ecx:10046CCE B9106F0910 mov ecx, 10096F10:10046CD3 E8685B0000 call 1004C840:10046CD8 8D94240C010000 lea edx, dword ptr [esp+0000010C]:10046CDF 8D84240C020000 lea eax, dword ptr [esp+0000020C]:10046CE6 52 push edx:10046CE7 50 push eax:10046CE8 E8B3060000 call 100473A0:10046CED 83C408 add esp, 00000008:10046CF0 85C0 test eax, eax ==== 测试寄存器值:10046CF2 0F8497000000 je 10046D8F =====此处,看到没?相等则转,转去做什么呢,我们接着往下看。* Possible StringData Ref from Data Obj ->"You have registered successfully!" |:10046CF8 6868EB0810 push 1008EB68:10046CFD B988730910 mov ecx, 10097388:10046D02 E879460100 call 1005B380:10046D07 8D4C240C lea ecx, dword ptr [esp+0C]:10046D0B 50 push eax:10046D0C 51 push ecx接下来我们转到10046D8F处,分析代码内容,代码如下:* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:10046CF2(C)|:10046D8F 8B5504 mov edx, dword ptr [ebp+04] === 正是这里了:10046D92 6A00 push 00000000:10046D94 6A40 push 00000040:10046D96 52 push edx* Possible StringData Ref from Data Obj ->"Your registration information " ->"is not correct, please contact " ->"support@viewlyrics.com for more " ->"info!" |:10046D97 6894EA0810 push 1008EA94:10046D9C B988730910 mov ecx, 10097388:10046DA1 E8DA450100 call 1005B380:10046DA6 50 push eax:10046DA7 E87435FCFF call 1000A320:10046DAC 83C410 add esp, 00000010:10046DAF 5F pop edi:10046DB0 5E pop esi:10046DB1 5D pop ebp:10046DB2 81C400030000 add esp, 00000300:10046DB8 C3 ret这一段代码的前面四个Push都是压入参数,没有具体再往下看,猜就知道是MessageBox的参数的。现在明白了,原来转到10046D8Fh要做的事是弹出一个消息框,告诉你的注册码不正确,否则往下执行10046CF8h处的代码,告诉你"You have registered successfully!"。呵呵,看来运气不错,现在一切都明白了。如果test eax, eax相等或为零,则弹出注册错误的消息,否则注册成功。那么如果我们使它不相等或不为零,结果不就成了,呵呵~,就这么回事了。具体地说就是把je 10046D8F改为jne 10046D8F,这样我们就可以随便输入什么都能正确注册了。接下来就是用十六进制编辑器打开MiniLyics.dll,找到00046cf2h处,修改机器码,保存。就不多说啦~现在我们再来注册一下,随便乱输吧,得到什么信息了?别告诉我还是错哦,我的思想很脆弱的。
原创粉丝点击