rayicy 发表于 2006-12-24 21:35:40

播音王 V3.01简单爆破

播音王 V3.01简单爆破

【破文标题】 播音王 V3.01简单爆破分析
【破解作者】 51Crack
【作者邮箱】 [email protected]
【作者主页】 http://www.chinaDFCG.com
【使用工具】 PEid,W32dasm,Ollydbg
【破解平台】 WinXP
【软件名称】 播音王 V3.01
【下载地址】 http://count.skycn.com/s0ftdownl ... 8181/down/Ancer.exe
【软件简介】 《播音王》是一个可以定时开机、定时播放音乐(声音)、定时关机的全自动播音软件。跟同类软件相比,其最大的特点是可以控制播放时间的长短,多个播音模板可供选择,节假日(如星期六、日,元旦春节等)不播音,也可以设定倒班及加班日期播音。完全不须人工干预,自动播音。
适用场合:
  1、学校、部队、公司、工厂等部门用于作息时间的自动控制,可取代传统的电铃、人工广播的作用;
  2、公园、舞厅、商场、酒店、酒吧、网吧、办公室等场所的背景音乐的播放,完全不须人工干预;
  3、车站、码头的自动播音;
  4、个人用于睡前欣赏音乐、起床叫醒;
  5、用于学校的英语或其它教学节目的无线或有线广播;
  6、中小型广播电台的节目播放。

  1、定时播放音乐(声音),可播放的音频文件有:WAV、MID、MIDI、MP3;
  2、定时开机(须主板支持)、定时关机;
  3、控制播放声音的时间长短;
  4、设定某些天(如星期六、日,元旦、国庆等)不播音;
  5、设定某些天(如果加班或倒班)播音,并可指定这些天的播音列表;
  6、录音:您可以录制通知,然后在指定的时间自动播出,特别增加了去躁声控制,使录制的声音更加清晰;
  7、MP3文件标记信息查询功能:能够得知关于此MP3文件的标题、歌手等信息;
  8、每天可编排不同的节目;
  9、可以对当天的列表采取自动和手动控制,可以对节目项进行编辑;
  10、当前时间显示;
  11、播放音频文件时长显示;
  12、音量调节控制功能;
  13、可选择播放音频文件或目录下所有音频文件,对于后者,还可以选择顺序播放或随机播放;
  14、对于MP3文件,有初始音量控制功能。

【软件大小】 945 KB
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】


用OD加载,Ctrl+N,找到_mbscmp,回车,右键选择“在每个命令中设置断点”,F9运行!
(先说明一下,程序试用次数在当前目录下的setup.ini中usenum项,次数为当前字符减'A'的值)

第1次中断如下:
004016CF   .68 34D14200   PUSH Ancer.0042D134                      ; /s2 = ""
004016D4   .50            PUSH EAX                                 ; |s1
004016D5   .FF15 E4154200 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>]    ; \_mbscmp//中断在这,将上面两部分比较
004016DB   .83C4 08       ADD ESP,8
004016DE   .85C0          TEST EAX,EAX
004016E0      0F84 B4010000 JE Ancer.0040189A                                    //不等跳走,跳就跳吧!
004016E6   .8BCE          MOV ECX,ESI
004016E8   .E8 13140000   CALL Ancer.00402B00
004016ED   .85C0          TEST EAX,EAX
004016EF      0F85 0A030000 JNZ Ancer.004019FF
004016F5   .50            PUSH EAX

          。。。。。省略。。。。。

0040189A   >8B86 C8000000 MOV EAX,DWORD PTR DS:                        //取转换后的次数         
004018A0   .C786 DC000000>MOV DWORD PTR DS:,1
004018AA   .85C0          TEST EAX,EAX
004018AC      0F8C C0060000 JL Ancer.00401F72                                    //<0 或>30 就将天数设为10
004018B2   .83F8 1E       CMP EAX,1E
004018B5      0F8F B7060000 JG Ancer.00401F72                                    
004018BB   .6A 00         PUSH 0
004018BD   .8D8C24 140100>LEA ECX,DWORD PTR SS:
004018C4   .E8 47260000   CALL Ancer.00403F10
004018C9   .8D86 CC000000 LEA EAX,DWORD PTR DS:
004018CF   .8D8C24 B40100>LEA ECX,DWORD PTR SS:
004018D6   .50            PUSH EAX
004018D7   .C68424 641300>MOV BYTE PTR SS:,22
004018DF   .E8 5AB00100   CALL <JMP.&MFC42.#858>
004018E4   .57            PUSH EDI
004018E5   .8D8C24 BC0100>LEA ECX,DWORD PTR SS:
004018EC   .E8 4DB00100   CALL <JMP.&MFC42.#858>
004018F1   .8B8E C8000000 MOV ECX,DWORD PTR DS:
004018F7   .898C24 700100>MOV DWORD PTR SS:,ECX
004018FE   .8D8C24 100100>LEA ECX,DWORD PTR SS:
00401905      E8 C2AF0100   CALL <JMP.&MFC42.#2514>                              //F8跟过这里会中断到下面
0040190A   .83F8 02       CMP EAX,2
0040190D      75 78         JNZ SHORT Ancer.00401987                           //此处跳到主程序执行!

=========================================================================
第二次中断

:004041F3 6834D14200            push 0042D134                        //xx入栈
:004041F8 50                      push eax                               //xx入栈

* Reference To: MSVCRT._mbscmp, Ord:0159h                              //比较函数
                                  |
:004041F9 FF15E4154200            Call dword ptr             //比较什么,不清楚!
:004041FF 83C408                  add esp, 00000008
:00404202 85C0                  test eax, eax
:00404204 746C                  je 00404272                            //不等就跳
:00404206 8BCF                  mov ecx, edi
:00404208 E8F3E8FFFF            call 00402B00
:0040420D 85C0                  test eax, eax
:0040420F 7531                  jne 00404242                           //此处可以跳到“成功”处
:00404211 81C7CC000000            add edi, 000000CC
:00404217 8D8EA4000000            lea ecx, dword ptr
:0040421D 57                      push edi

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040421E E81B870100            Call 0041C93E
:00404223 53                      push ebx
:00404224 8D8EA8000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040422A E80F870100            Call 0041C93E
:0040422F 8B4660                  mov eax, dword ptr             //取转换后的次数
:00404232 85C0                  test eax, eax
:00404234 7C76                  jl 004042AC
:00404236 83F81E                  cmp eax, 0000001E                      //<0 或>30 就将天数设为10
:00404239 7F71                  jg 004042AC
:0040423B 8D44240C                lea eax, dword ptr
:0040423F 50                      push eax
:00404240 EB5F                  jmp 004042A1

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040420F(C)
|
:00404242 81C7CC000000            add edi, 000000CC
:00404248 8D8EA4000000            lea ecx, dword ptr
:0040424E 57                      push edi

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040424F E8EA860100            Call 0041C93E
:00404254 53                      push ebx
:00404255 8D8EA8000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040425B E8DE860100            Call 0041C93E

* Possible StringData Ref from Data Obj ->"注册成功!感谢您对我们的支持!"
                                  |
:00404260 6820A34200            push 0042A320
:00404265 8D8EAC000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035C, Ord:035Ch
                                  |
:0040426B E8A4860100            Call 0041C914
:00404270 EB3A                  jmp 004042AC
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404204(C)
|
:00404272 8B4660                  mov eax, dword ptr
:00404275 85C0                  test eax, eax
:00404277 7C33                  jl 004042AC
:00404279 83F81E                  cmp eax, 0000001E
:0040427C 7F2E                  jg 004042AC
:0040427E 81C7CC000000            add edi, 000000CC
:00404284 8D8EA4000000            lea ecx, dword ptr
:0040428A 57                      push edi

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040428B E8AE860100            Call 0041C93E
:00404290 53                      push ebx
:00404291 8D8EA8000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:00404297 E8A2860100            Call 0041C93E
:0040429C 8D4C240C                lea ecx, dword ptr
:004042A0 51                      push ecx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404240(U)
|
:004042A1 8D8EAC000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:004042A7 E892860100            Call 0041C93E

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404234(C), :00404239(C), :00404270(U), :00404277(C), :0040427C(C)
|

* Possible StringData Ref from Data Obj ->"    如想购买此软件,请发Email:support_max@wing"
                                        ->"softs.com或打电话:13833101100,张先生。软件售"
                                        ->"价:160元/套。购买后,请将机器码发给我,我会告"
                                        ->"诉你注册码。每个授权只适用于一台机器,如果想用"
                                        ->"在多台机器上,请重新购买授权。购买多套,可享受"
                                        ->"优惠!"
                                  |
:004042AC 6830A24200            push 0042A230
:004042B1 8D8EB0000000            lea ecx, dword ptr

* Reference To: MFC42.Ordinal:035C, Ord:035Ch
                                  |
:004042B7 E858860100            Call 0041C914
:004042BC 6A00                  push 00000000
:004042BE 8BCE                  mov ecx, esi

* Reference To: MFC42.Ordinal:18BE, Ord:18BEh
                                  |
:004042C0 E805880100            Call 0041CACA
:004042C5 8B4660                  mov eax, dword ptr
:004042C8 85C0                  test eax, eax
:004042CA 7504                  jne 004042D0
:004042CC 6A00                  push 00000000
:004042CE EB02                  jmp 004042D2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004042CA(C)
|
:004042D0 6A01                  push 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004042CE(U)
|
:004042D2 8D4E64                  lea ecx, dword ptr

* Reference To: MFC42.Ordinal:0A52, Ord:0A52h
                                  |
:004042D5 E8EA870100            Call 0041CAC4
:004042DA 8D4C240C                lea ecx, dword ptr
:004042DE C744242CFFFFFFFF      mov , FFFFFFFF

* Reference To: MFC42.Ordinal:0320, Ord:0320h
                                  |
:004042E6 E875850100            Call 0041C860
:004042EB 8B4C2424                mov ecx, dword ptr
:004042EF 5F                      pop edi
:004042F0 5E                      pop esi
:004042F1 B801000000            mov eax, 00000001
:004042F6 5B                      pop ebx
:004042F7 64890D00000000          mov dword ptr fs:, ecx
:004042FE 83C424                  add esp, 00000024
:00404301 C3                      ret                         //此处返回到系统领空,第1次执行时出现注册对话框


可以看出,此处是设置显示字符串,是“成功”还是“剩余多少天”!
============================================================================

F9运行还会中断几次,注册框都出来了,也没什么意义了!

重新来过,如果将00401905   CALL <JMP.&MFC42.#2514> 直接nop掉,程序运行正常,不会弹出注册框,但购买菜单中还是显示剩余天数!
所以决定在4042xx处修改!

00404204 je 00404272//nop
0040420F jne 00404242 //jmp 404242

搞定,收工!!!


--------------------------------------------------------------------------------
【破解总结】

写得比较乱,大家就将就看吧!
语文学得不好,表达的也不是很清楚!见谅!!
--------------------------------------------------------------------------------
         本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
   >>>>版权所有
********************************************************************************************************
CCHG精品软件论坛,任何人不得利用其进行非法赢利,违者必究。
本站永久性国际域名http://www.xiwo.net/

tigerisme 发表于 2006-12-25 08:37:17

不错的分析,谢谢分享!

minoboy 发表于 2006-12-25 09:09:38

楼上不错,比我强多了,呵呵

pkfoo 发表于 2006-12-27 14:32:08

我才刚学看明一点点

爬爬虫 发表于 2007-1-3 11:04:35

看得不是很明白,慢慢学!

pplove 发表于 2007-1-3 14:19:04

呵呵! 真的是不错的帖子哈!

avel 发表于 2007-1-3 14:25:04

阅读再行分析~

31227667 发表于 2018-9-28 01:05:17

这个软件还是太简单了

jackwolail 发表于 2018-9-28 21:11:30

好好学习,天天向上

www789 发表于 2018-10-5 20:54:55

谢谢分享!辛苦了
页: [1]
查看完整版本: 播音王 V3.01简单爆破