Dialog-Medien MP3Play OCX的破解 版本:1.4 工具:TRW2000和ActiveX Control Test Container 目标说明:一个专为MPEG Audio layer 3格式文件解码的软件, 能够产生高品质高压缩率的文件,未注册版本只能播放30秒! 难度:低级? 下载地址:一般的VB站点都会提供此控件的下载! 补充说明:此控件并不是用LIC文件或直接输入注册信息来注册的,而是调用控件内部函数 Authorize("Name","RegCode")来注册的。若返回的值等于-5,则注册失败; 若返回的值等于0,则注册成功!为了破解此控件,要用到MicroSoft出品的 Visual C++ 5.0或6.0中附带的控件调试工具ActiveX Control Test Container。 ===================================================================================== (1) 运行ActiveX Control Test Container后,在"Edit"菜单项中选择"Insert OLE Control...", 在控件列表中,选择"Dialog-Medien Mp3Play Control";然后,在"Edit"菜单项中选择"Invoke Methods",选择"Authorize",输入Name:"sUpErbOss",Password:"1122334455"。 按Ctrl-D切换到TRW2000下,打入BPX HMEMCPY设段。 按F5键回到Windows下,点击"Invoke"按钮 被TRW2000拦下后,将中断Disable,下BD *指令。 (2) 现在正处于系统的领空, 所以,按几下F12键或打入PModule,快速返回到程序模组下。 然后,再下BPX WideCharToMultiByte设段。 再按F5继续运行,每次被拦下后,注意下D ESP+C指令, 在数据框中会看到如下的数据型式: (注:假设ESP+C=0066EE24) ****:0066EE24 28 77 44 00 00 00 00 00 ...... 再打入D 447728又会看到如下的数据型式: ****:00447728 73 00 55 00 70 00 45 00 72 00 62 00 4F 00 73 00 ...... | | | | | | | | s U p E r b O s 照以上步骤多做几次,数据框中会出现如下的数据型式: ****:******** 2D 00 35 00 00 00 ...... | | - 5 根据MP3Play OCX的帮助文件所述,当Authorize("Name","Password")的返回值为-5时, 表示注册不成功;返回值为0时,表示注册成功。
(3) 按两次F12键跳出CALL,慢慢往上看,会看到如下的语句: ****:******** MOV EBX,[ESP+08] <---在此处按F9键设段!! ****:******** PUSH ESI ****:******** PUSH EDI ****:******** TEST EBX,EBX ****:******** MOV ESI,ECX ****:******** JNZ 5E45A819 . . 若在断点的下一条指令处,下D EBX指令,则知[EBX]="-5" 再下BPM EBX指令设段,重新执行注册步骤,按F5键几次后,会在下面被拦下: ****:10007C75 CMP BYTE PTR [EAX], 00 ---> [EAX]="sUpErbOss" ****:10007C78 JE 10007DC8 ****:10007C7E MOV EBX, DWORD PTR [ESP+60] ****:10007C82 TEST EBX, EBX ****:10007C84 JE 10007DC8 ****:10007C8A CMP BYTE PTR [EBX], 00 ---> [EBX]="1122334455" ****:10007C8D JE 10007DC8 . . . ****:10007D2D XOR EDX, EDX ****:10007D2F MOV ECX, 66D81CC3 ****:10007D34 DIV ECX ****:10007D36 CMP EDX, DWORD PTR [ESP+60] --->[ESP+60]="42E576F7",EDX="4ED6ED8E" ****:10007D3A SETE AL ****:10007D3D TEST AL, AL ****:10007D3F JE 10007DC8 注意:"42E576F7"好像很熟悉,哦!这不就是"1122334455"的十六进制形式吗!那EDX的值的十进制 形式"1322708366"不就是正确的注册号吗? (4) 下BD * 指令,重新输入Name:"sUpErbOss",Password:"1322708366"。 点击"Invoke"按钮后,在ReturnedI2栏中,会显示返回值为"0"。 搞定!
|