飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5270|回复: 9

[转贴] 播音王 V3.01简单爆破

[复制链接]

该用户从未签到

发表于 2006-12-24 21:35:40 | 显示全部楼层 |阅读模式
播音王 V3.01简单爆破

【破文标题】 播音王 V3.01简单爆破分析
破解作者】 51Crack[DFCG]
【作者邮箱】 51crack@163.com
【作者主页】 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:[ESI+C8]                        //取转换后的次数         
004018A0   .  C786 DC000000>MOV DWORD PTR DS:[ESI+DC],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:[ESP+114]
004018C4   .  E8 47260000   CALL Ancer.00403F10
004018C9   .  8D86 CC000000 LEA EAX,DWORD PTR DS:[ESI+CC]
004018CF   .  8D8C24 B40100>LEA ECX,DWORD PTR SS:[ESP+1B4]
004018D6   .  50            PUSH EAX
004018D7   .  C68424 641300>MOV BYTE PTR SS:[ESP+1364],22
004018DF   .  E8 5AB00100   CALL <JMP.&MFC42.#858>
004018E4   .  57            PUSH EDI
004018E5   .  8D8C24 BC0100>LEA ECX,DWORD PTR SS:[ESP+1BC]
004018EC   .  E8 4DB00100   CALL <JMP.&MFC42.#858>
004018F1   .  8B8E C8000000 MOV ECX,DWORD PTR DS:[ESI+C8]
004018F7   .  898C24 700100>MOV DWORD PTR SS:[ESP+170],ECX
004018FE   .  8D8C24 100100>LEA ECX,DWORD PTR SS:[ESP+110]
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 [004215E4]              //比较什么,不清楚!
: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 [esi+000000A4]
: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 [esi+000000A8]

* Reference To: MFC42.Ordinal:035A, Ord:035Ah
                                  |
:0040422A E80F870100              Call 0041C93E
:0040422F 8B4660                  mov eax, dword ptr [esi+60]            //取转换后的次数
: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 [esp+0C]
: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 [esi+000000A4]
: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 [esi+000000A8]

* 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 [esi+000000AC]

* 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 [esi+60]
: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 [esi+000000A4]
: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 [esi+000000A8]

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

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

* 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 [esi+000000B0]

* 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 [esi+60]
: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 [esi+64]

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

* Reference To: MFC42.Ordinal:0320, Ord:0320h
                                  |
:004042E6 E875850100              Call 0041C860
:004042EB 8B4C2424                mov ecx, dword ptr [esp+24]
:004042EF 5F                      pop edi
:004042F0 5E                      pop esi
:004042F1 B801000000              mov eax, 00000001
:004042F6 5B                      pop ebx
:004042F7 64890D00000000          mov dword ptr fs:[00000000], 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/

评分

参与人数 1威望 +4 收起 理由
tigerisme + 4 鼓励!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2006-12-25 08:37:17 | 显示全部楼层
不错的分析,谢谢分享!
PYG19周年生日快乐!

该用户从未签到

发表于 2006-12-25 09:09:38 | 显示全部楼层
楼上不错,比我强多了,呵呵
PYG19周年生日快乐!

该用户从未签到

发表于 2006-12-27 14:32:08 | 显示全部楼层
我才刚学看明一点点
PYG19周年生日快乐!

该用户从未签到

发表于 2007-1-3 11:04:35 | 显示全部楼层
看得不是很明白,慢慢学!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-1-3 14:19:04 | 显示全部楼层
呵呵! 真的是不错的帖子哈!
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-5-3 19:45
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2007-1-3 14:25:04 | 显示全部楼层
    阅读  再行分析~
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2019-2-26 13:50
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2018-9-28 01:05:17 | 显示全部楼层
    这个软件还是太简单了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2020-1-19 00:30
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2018-9-28 21:11:30 | 显示全部楼层
    好好学习,天天向上
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-6 08:18
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2018-10-5 20:54:55 | 显示全部楼层
    谢谢分享!辛苦了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表