首页
社区
课程
招聘
[旧帖] [原创]一款带宽管理软件的版本控制分析 0.00雪花
发表于: 2009-1-9 13:17 2861

[旧帖] [原创]一款带宽管理软件的版本控制分析 0.00雪花

2009-1-9 13:17
2861
一款带宽管理软件的版本控制分析

最近,放假了,呵呵,偶虽然水平有限,但依旧死心不改,因为破解有时候的确很有趣!
今天,我拿一款国外软件来练练手。 

软件名称:JDSoft Bandwidth Manager 1.0
下载地址:http://www.newhua.com/soft/78994.htm
软件介绍:当带宽管理已经成为大型商业企业和 ISP 的积年问题的时候,现在这个问题同样困扰着家庭和小型商业网络。通过监视你的网络传输量同时限制带宽的方式,该软件在缩减你的总体带宽需要的同时允许重要的商业网络应用稳定地运行从而立即提高网络的效率。  

该软件安装后,查壳,呵呵,无壳!本来准备玩玩猫捉老鼠(追注册码)的游戏的,但是偶真的水平有限,楞没把算法找出来~~(还得请各位大侠指教) 

不过,偶通过超级字符串参考,发现了版本控制的“关键点”~~遂成此文~~
先来一堆代码,不要被吓倒哦,其实看不看无所谓,且请看后面的一点点分析。
0040B6D0  /$  64:A1 0000000>mov     eax, dword ptr fs:[0]
0040B6D6  |.  6A FF         push    -1
0040B6D8  |.  68 625D4400   push    00445D62
0040B6DD  |.  50            push    eax
0040B6DE  |.  64:8925 00000>mov     dword ptr fs:[0], esp
0040B6E5  |.  81EC 64010000 sub     esp, 164
0040B6EB  |.  53            push    ebx
0040B6EC  |.  56            push    esi
0040B6ED  |.  8BB424 7C0100>mov     esi, dword ptr [esp+17C]
0040B6F4  |.  8A06          mov     al, byte ptr [esi]
0040B6F6  |.  3C 03         cmp     al, 3                            ;  Switch (cases 1..4)
0040B6F8  |.  0F84 28020000 je      0040B926
0040B6FE  |.  3C 04         cmp     al, 4
0040B700  |.  75 71         jnz     short 0040B773
0040B702  |.  8A46 01       mov     al, byte ptr [esi+1]             ;  Case 4 of switch 0040B6F6
0040B705  |.  33DB          xor     ebx, ebx
0040B707  |.  3AC3          cmp     al, bl
0040B709  |.  74 34         je      short 0040B73F
0040B70B  |.  E8 A0A60200   call    00435DB0
0040B710  |.  3BC3          cmp     eax, ebx
0040B712  |.  74 18         je      short 0040B72C
0040B714  |.  8B10          mov     edx, dword ptr [eax]
0040B716  |.  8BC8          mov     ecx, eax
0040B718  |.  FF52 74       call    dword ptr [edx+74]
0040B71B  |.  68 A0764500   push    004576A0                         ;  jdsoft bandwidth manager - home edition
0040B720  |.  8BC8          mov     ecx, eax
0040B722  |.  E8 AD960200   call    00434DD4
0040B727  |.  E9 FA010000   jmp     0040B926
0040B72C  |>  33C0          xor     eax, eax
0040B72E  |.  68 A0764500   push    004576A0                         ;  jdsoft bandwidth manager - home edition
0040B733  |.  8BC8          mov     ecx, eax
0040B735  |.  E8 9A960200   call    00434DD4
0040B73A  |.  E9 E7010000   jmp     0040B926
0040B73F  |>  E8 6CA60200   call    00435DB0
0040B744  |.  3BC3          cmp     eax, ebx
0040B746  |.  74 18         je      short 0040B760
0040B748  |.  8B10          mov     edx, dword ptr [eax]
0040B74A  |.  8BC8          mov     ecx, eax
0040B74C  |.  FF52 74       call    dword ptr [edx+74]
0040B74F  |.  68 44764500   push    00457644                         ;  jdsoft bandwidth manager - enterprise edition
0040B754  |.  8BC8          mov     ecx, eax
0040B756  |.  E8 79960200   call    00434DD4
0040B75B  |.  E9 C6010000   jmp     0040B926
0040B760  |>  33C0          xor     eax, eax
0040B762  |.  68 44764500   push    00457644                         ;  jdsoft bandwidth manager - enterprise edition
0040B767  |.  8BC8          mov     ecx, eax
0040B769  |.  E8 66960200   call    00434DD4
0040B76E  |.  E9 B3010000   jmp     0040B926
0040B773  |>  3C 01         cmp     al, 1
0040B775  |.  74 50         je      short 0040B7C7
0040B777  |.  3C 02         cmp     al, 2
0040B779  |.  74 4C         je      short 0040B7C7
0040B77B  |.  8B46 04       mov     eax, dword ptr [esi+4]           ;  Default case of switch 0040B6F6
0040B77E  |.  8D4C24 6C     lea     ecx, dword ptr [esp+6C]
0040B782  |.  50            push    eax
0040B783  |.  68 DC754500   push    004575DC                         ;  jdsoft bandwidth manager - trial version (%u days)
0040B788  |.  51            push    ecx
0040B789  |.  E8 02510100   call    00420890
0040B78E  |.  83C4 0C       add     esp, 0C
0040B791  |.  E8 1AA60200   call    00435DB0
0040B796  |.  33DB          xor     ebx, ebx
0040B798  |.  3BC3          cmp     eax, ebx
0040B79A  |.  74 18         je      short 0040B7B4
0040B79C  |.  8B10          mov     edx, dword ptr [eax]
0040B79E  |.  8BC8          mov     ecx, eax
0040B7A0  |.  FF52 74       call    dword ptr [edx+74]
0040B7A3  |.  8D4C24 6C     lea     ecx, dword ptr [esp+6C]
0040B7A7  |.  51            push    ecx
0040B7A8  |.  8BC8          mov     ecx, eax
0040B7AA  |.  E8 25960200   call    00434DD4
0040B7AF  |.  E9 72010000   jmp     0040B926
0040B7B4  |>  8D4C24 6C     lea     ecx, dword ptr [esp+6C]
0040B7B8  |.  33C0          xor     eax, eax
0040B7BA  |.  51            push    ecx
0040B7BB  |.  8BC8          mov     ecx, eax
0040B7BD  |.  E8 12960200   call    00434DD4
0040B7C2  |.  E9 5F010000   jmp     0040B926
0040B7C7  |>  33DB          xor     ebx, ebx                         ;  Cases 1,2 of switch 0040B6F6
0040B7C9  |.  8D4C24 0C     lea     ecx, dword ptr [esp+C]
0040B7CD  |.  53            push    ebx
0040B7CE  |.  E8 8D5B0000   call    00411360
0040B7D3  |.  899C24 740100>mov     dword ptr [esp+174], ebx
0040B7DA  |.  E8 D1A50200   call    00435DB0
0040B7DF  |.  3BC3          cmp     eax, ebx
0040B7E1  |.  74 09         je      short 0040B7EC
0040B7E3  |.  8B10          mov     edx, dword ptr [eax]
0040B7E5  |.  8BC8          mov     ecx, eax
0040B7E7  |.  FF52 74       call    dword ptr [edx+74]
0040B7EA  |.  EB 02         jmp     short 0040B7EE
0040B7EC  |>  33C0          xor     eax, eax
0040B7EE  |>  68 88754500   push    00457588                         ;  jdsoft bandwidth manager - trial expired!
0040B7F3  |.  8BC8          mov     ecx, eax
0040B7F5  |.  E8 DA950200   call    00434DD4
0040B7FA  |.  803E 02       cmp     byte ptr [esi], 2
0040B7FD  |.  0F85 E4000000 jnz     0040B8E7
0040B803  |.  68 58754500   push    00457558                         ;  unfortunately the registration information (

通过本人的OD跟踪调试发现:
0040B6F6  |.  3C 03         cmp     al, 3                            ;  Switch (cases 1..4)
这一行开始程序版本的判断。

al=0  试用版本,缺省选项
al=1,2  试用版本过期
al=3  直接跳过检查,无版本信息,或者JDSoft Bandwidth Service此项服务未启动!
al=4  版本识别:分为家用版和企业版

我是通过修改时间,以及操纵JDSoft Bandwidth Service此项服务得到以上结果的。
程序版本分为试用版、家用版和企业版三个版本。
以下分别给出三个版本限制去除的简单方法。

试用版:
0040B77B  |.  8B46 04       mov     eax, dword ptr [esi+4]           ;  Default case of 

switch 0040B6F6
修改为:
0040B6F4      B0 04         mov     al, xx                           ;  这里xx需要满足0<=xx<30

企业版~~~~
0040B6F4      8A06          mov     al, byte ptr [esi]
修改为:
0040B6F4      B0 04         mov     al, 4

家用版~~~~
0040B702      8A46 01       mov     al, byte ptr [esi+1]
修改为:
0040B702      B0 01         mov     al, 1
0040B704      90            nop

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我发现,每种软件都有版本控制分支。今天特地给出此软件的简单分析及对策,与大家共同学习。。。

我所列出的解决办法,都是“霸王硬上弓”型,呵呵~~
2009-1-9 13:22
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是啊~算法弄得很头疼~至今都在爆破,没什么起色~一追算法就晕~
2009-1-9 15:29
0
游客
登录 | 注册 方可回帖
返回
//