首页
社区
课程
招聘
迷你网络电视V5.5爆破分析
发表于: 2004-5-11 17:39 6309

迷你网络电视V5.5爆破分析

2004-5-11 17:39
6309
【破文标题】 迷你网络电视V5.5爆破分析

【破文作者】 aki

【难 度】:简单,献给像我等这样的菜鸟学习

【作者邮箱】 58216365@163com

【oicq】58216365

【使用工具】 Peid,W32Dasm,ollydbg

【破解平台】 Win2000/XP

【软件名称】迷你网络电视 v5.5

【未注册限制】未注册用户只能看少量电台,并且软件运行时,自动打开作者主页。

【软件简介】不用看也知道干什么用的。(在线看电视,听广播,但功能不强)
--------------------------------------------------------------------------------

【破解内容】用peid查壳,无壳,borland c++写的,作者也太自信了吧。^-^.用w32d反汇编,竟然死掉,看来软件做了反汇编处理。用w32d彻底解决ANTI版 by yaoyuan[CCG]反汇编成功。在串式参考中我们发现“迷你网络电视-注册版”和“迷你网络电视-未注册版”字样。双击“迷你网络电视-注册版”我们来到这里
:0040221D FF4B1C                  dec [ebx+1C]
:00402220 FF4B1C                  dec [ebx+1C]
:00402223 E85CFBFFFF              call 00401D84
:00402228 A390025300              mov dword ptr [00530290], eax
:0040222D 56                      push esi
:0040222E E899020000              call 004024CC
:00402233 59                      pop ecx
:00402234 BA51035300              mov edx, 00530351
:00402239 66C74310BC00            mov [ebx+10], 00BC
:0040223F 8D856CFFFFFF            lea eax, dword ptr [ebp+FFFFFF6C]
:00402245 E84AA70F00              call 004FC994
:0040224A FF431C                  inc [ebx+1C]
:0040224D 8B10                    mov edx, dword ptr [eax]
:0040224F 8B86F4020000            mov eax, dword ptr [esi+000002F4]
:00402255 E89AC20B00              call 004BE4F4
:0040225A FF4B1C                  dec [ebx+1C]
:0040225D 8D856CFFFFFF            lea eax, dword ptr [ebp+FFFFFF6C]
:00402263 BA02000000              mov edx, 00000002
:00402268 E8F7A70F00              call 004FCA64
:0040226D E886340000              call 004056F8                 //关键call
:00402272 84C0                    test al, al
:00402274 7448                    je 004022BE                   //不能跳
:00402276 33D2                    xor edx, edx
:00402278 8B8618030000            mov eax, dword ptr [esi+00000318]
:0040227E E8C5770800              call 00489A48
:00402283 66C74310C800            mov [ebx+10], 00C8

* Possible StringData Ref from Data Obj ->"迷你网络电视-注册版"
                                  |
:00402289 BA52035300              mov edx, 00530352
:0040228E 8D8568FFFFFF            lea eax, dword ptr [ebp+FFFFFF68]
:00402294 E8FBA60F00              call 004FC994
:00402299 FF431C                  inc [ebx+1C]
:0040229C 8B10                    mov edx, dword ptr [eax]
:0040229E 8B86F0020000            mov eax, dword ptr [esi+000002F0]
* Reference To: Nettvprj.Suiform::TsuiForm::SetCaption(())
                                  |
:004022A4 E827C00300              call 0043E2D0
:004022A9 FF4B1C                  dec [ebx+1C]
:004022AC 8D8568FFFFFF            lea eax, dword ptr [ebp+FFFFFF68]
:004022B2 BA02000000              mov edx, 00000002
:004022B7 E8A8A70F00              call 004FCA64
:004022BC EB56                    jmp 00402314

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402274(C)
|
:004022BE 66C74310D400            mov [ebx+10], 00D4

* Possible StringData Ref from Data Obj ->"迷你网络电视-未注册版"
                                  |
:004022C4 BA66035300              mov edx, 00530366
:004022C9 8D8564FFFFFF            lea eax, dword ptr [ebp+FFFFFF64]
:004022CF E8C0A60F00              call 004FC994
:004022D4 FF431C                  inc [ebx+1C]
:004022D7 8B10                    mov edx, dword ptr [eax]
:004022D9 8B86F0020000            mov eax, dword ptr [esi+000002F0]
可以看到,从00402274跳到了未注册处。改为nop再运行,标题成了注册版,不开作者主页,单独但功能限制没有解除。我们看到,00402272处al的值决定跳转。用old载入,在00402272处下断,跟进call来到这里
:004056F8 BA78785400              mov edx, 00547878
:004056FD FF02                    inc dword ptr [edx]
:004056FF 830209                  add dword ptr [edx], 00000009
:00405702 33C0                    xor eax, eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040570C(C)
|
:00405704 FF02                    inc dword ptr [edx]
:00405706 2902                    sub dword ptr [edx], eax
:00405708 40                      inc eax
:00405709 83F825                  cmp eax, 00000025
:0040570C 7CF6                    jl 00405704
:0040570E E8EDFEFFFF              call 00405600             //跟进
:00405713 C3                      ret
跟进0040570e的call
:00405600 53                      push ebx
:00405601 56                      push esi
:00405602 57                      push edi
:00405603 55                      push ebp
:00405604 803DA802530000          cmp byte ptr [005302A8], 00
:0040560B 7532                    jne 0040563F
:0040560D 6839300000              push 00003039
***********************************************************************
**************************************************************************//省去若干行
|:004056AA(C)
|
:00405698 03F1                    add esi, ecx
:0040569A FF0574785400            inc dword ptr [00547874]
:004056A0 2BF9                    sub edi, ecx
:004056A2 41                      inc ecx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405696(U)
|
:004056A3 8BC3                    mov eax, ebx
:004056A5 99                      cdq
:004056A6 F7FD                    idiv ebp
:004056A8 3BC8                    cmp ecx, eax
:004056AA 7CEC                    jl 00405698
:004056AC 3BF7                    cmp esi, edi
:004056AE 751D                    jne 004056CD
:004056B0 FF0DA0025300            dec dword ptr [005302A0]
:004056B6 3BF7                    cmp esi, edi
:004056B8 0F94C0                  sete al
:004056BB 83E001                  and eax, 00000001
:004056BE A28C025300              mov byte ptr [0053028C], al
:004056C3 B001                    mov al, 01
:004056C5 FF0D74785400            dec dword ptr [00547874]
:004056CB EB25                    jmp 004056F2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056AE(C)
|
:004056CD 813D900253000FCD7F00    cmp dword ptr [00530290], 007FCD0F
:004056D7 7511                    jne 004056EA                                                               //一跳就GameOver
:004056D9 C6058C02530001          mov byte ptr [0053028C], 01                        //byte ptr [0053028C]注册标志
:004056E0 B001                    mov al, 01                                                                      位=1表示注册,=0表示未注                           
:004056E2 FF0D74785400            dec dword ptr [00547874]                                    册
:004056E8 EB08                    jmp 004056F2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056D7(C)                                                                                                 //不能跳到这儿
|
:004056EA FF0574785400            inc dword ptr [00547874]
:004056F0 33C0                    xor eax, eax                                                   //eax清0

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004056CB(U), :004056E8(U)
|
:004056F2 5D                      pop ebp
:004056F3 5F                      pop edi
:004056F4 5E                      pop esi
:004056F5 5B                      pop ebx
:004056F6 C3                      ret
我们看到,在4056f0处清eax,跳转由4056d7处跳来,将该行nop掉后,送1给标志位,爆破成功。
--------------------------------------------
第一次写破文,写的不好,还请大家见谅。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (3)
雪    币: 231
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持一下。。。。
2004-5-11 17:42
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,楼主的分析
2004-5-11 19:21
0
雪    币: 214
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056AE(C)
|
:004056CD 813D900253000FCD7F00 cmp dword ptr [00530290], 007FCD0F
:004056D7 7511 jne 004056EA //一跳就GameOver
:004056D9 C6058C02530001 mov byte ptr [0053028C], 01 //byte ptr [0053028C]注册标志
:004056E0 B001 mov al, 01 位=1表示注册,=0表示未注
:004056E2 FF0D74785400 dec dword ptr [00547874] 册
:004056E8 EB08 jmp 004056F2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056D7(C) //不能跳到这儿
|
:004056EA FF0574785400 inc dword ptr [00547874]
:004056F0 33C0 xor eax, eax //eax清0

菜鸟问 004056D7  怎么一跳就over了?
怎么知道 04056E2   01 位=1表示注册,=0表示未注
2004-5-17 19:48
0
游客
登录 | 注册 方可回帖
返回
//