- UID
- 8671
注册时间2006-2-27
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 开心 2018-5-6 16:27 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
|
软件名称:Easy Karaoke Player 3.0.159
下载地址:http://www.onlinedown.net/soft/46535.htm
软件大小:511KB
软件语言:英文
软件类别:国外软件/共享版/音频工具
运行环境:Win9x/Me/NT/2000/XP/2003
加入时间:2006-6-30 15:28:51
下载次数:16815
软件介绍:Eeasy Karaoke Player可以播放卡拉ok或录制卡拉ok歌曲到wav檔。它可以利用其内建的强大的多媒体播放器来播放所有的多媒体格式档案。如MP3, MIDI, KAR, WAV, WMA, AC3, OGG, MPA, MP2, AU, AIF, SND,等等。并且支持下列影像格式 VCD, MPEG, AVI, WMV, ASF, OGM, DIVX, DAT, SVCD
暴破过程:
一、PEiD查得Microsoft Visual C++ 7.0软件。
二、去Nag,OD载入,超级ASCII字符串搜索,找到:
+++++++++++++
超级字串参考+ , 条目 186
地址=00410F81
反汇编=PUSH karaoke.00441968
文本字串=registration failed!
+++++++++++++
注册错误提示,往上下看:
+++++++++++
超级字串参考+ , 条目 184
地址=00410F5E
反汇编=PUSH karaoke.0044004C
文本字串=registration_code
++++++++++++
发现这是软件注册成功后的写入注册表的键项。分别搜索有关调用它的代码段:
+++++++++++++++++
++++++++++++++++++++++++++
找到三个调用,我们分别在它的入口代码处下断:
00404A20 6A FF PUSH -1 //下断1
00404A22 . 68 98D44300 PUSH karaoke.0043D498 ; SE 处理程序安装
00404A27 . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00404A2D . 50 PUSH EAX
00404A2E . 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00404A35 . 81EC 04010000 SUB ESP,104
~~~中间代码略~~~
00404AAD . 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
00404AB0 . 68 69004400 PUSH karaoke.00440069
00404AB5 . 68 4C004400 PUSH karaoke.0044004C ; registration_code
++++++++++++++++++++
00410CC3 . 55 PUSH EBP //下断2
00410CC4 . 56 PUSH ESI
00410CC5 . 57 PUSH EDI
00410CC6 . BF 01000000 MOV EDI,1
00410CCB . 57 PUSH EDI
~~~中间代码略~~~
00410F52 . 8B7E 74 MOV EDI,DWORD PTR DS:[ESI+74]
00410F55 . E8 F78F0200 CALL karaoke.00439F51
00410F5A . 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
00410F5D . 57 PUSH EDI ; /Arg3
00410F5E . 68 4C004400 PUSH karaoke.0044004C ; |registration_code
++++++++++++++++++
00410FA0 $ 6A FF PUSH -1 //下断3
00410FA2 . 68 AEDF4300 PUSH karaoke.0043DFAE ; SE 处理程序安装
00410FA7 . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00410FAD . 50 PUSH EAX
~~~中间代码略~~~
0041105F . FF52 04 CALL DWORD PTR DS:[EDX+4]
00411062 > E8 EA8E0200 CALL karaoke.00439F51
00411067 . 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
0041106A . 68 69004400 PUSH karaoke.00440069
0041106F . 68 4C004400 PUSH karaoke.0044004C ; registration_code
+++++++++++++++++++++++++++
下断好后,F9运行程序,程序被中断在第一断点处:
00404A20 6A FF PUSH -1
//考虑到程序应该是弹出注册窗口的啦。我们把这里改成retn。
改完之后,F9运行程序,直接进入主界面,我们越过了注册窗口。
+++++++++++++++++++++++++++++
三、去时间限制。(未注册版只能录1分钟的歌。)
在OD中接着取消所有断点,用那个卡拉OK程序打开一首歌,点Start开始唱。唱到56秒时,下OD命令断点:bp KillTimer,因为歌曲快要唱到1分钟时,程序就要做出反应。用到的条件KillTimer。。。
77D18C1A > B8 C5110000 MOV EAX,11C5 //程序中断在此,取消断点。
77D18C1F BA 0003FE7F MOV EDX,7FFE0300
77D18C24 FF12 CALL DWORD PTR DS:[EDX]
77D18C26 C2 0800 RETN 8
+++堆栈友好提示+++
00128F9C 0041369E /CALL 到 KillTimer 来自 karaoke.00413698 //右键反汇编中跟随~~~
00128FA0 000705A6 |hWnd = 000705A6 ('大约在冬季.mp3 ',class='PreviewWindow')
00128FA4 00000001 \TimerID = 1
++++我们来到程序领空+++
00413660 /$ 83EC 08 SUB ESP,8 //在此下断,重新卡拉伴奏。
00413663 |. 56 PUSH ESI //将1分钟之时,程序初中断下来。。。单点~~~
00413664 |. 8BF1 MOV ESI,ECX
00413666 |. 8B86 3C010000 MOV EAX,DWORD PTR DS:[ESI+13C]
0041366C |. 85C0 TEST EAX,EAX
0041366E |. 74 7E JE SHORT karaoke.004136EE //这个跳转不实现。刚好跳过下面的KillTimer,把它改成JMP之后,程序可以继续伴唱!
00413670 |. 8B86 48010000 MOV EAX,DWORD PTR DS:[ESI+148]
00413676 |. 85C0 TEST EAX,EAX
00413678 |. 74 74 JE SHORT karaoke.004136EE
0041367A |. 8B86 1C010000 MOV EAX,DWORD PTR DS:[ESI+11C]
00413680 |. 83F8 01 CMP EAX,1
00413683 |. 74 0A JE SHORT karaoke.0041368F
00413685 |. 83F8 02 CMP EAX,2
00413688 |. 74 05 JE SHORT karaoke.0041368F
0041368A |. 83F8 04 CMP EAX,4
0041368D |. 75 58 JNZ SHORT karaoke.004136E7
0041368F |> 8B86 50010000 MOV EAX,DWORD PTR DS:[ESI+150]
00413695 |. 6A 01 PUSH 1 ; /TimerID = 1
00413697 |. 50 PUSH EAX ; |hWnd
00413698 |. FF15 04F64300 CALL DWORD PTR DS:[<&USER32.Kil>; \KillTimer //返回到这~~~
+++++++++++++另存程序,至此,暴破成功!
破解声明:本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|