ps520 发表于 2010-3-30 10:21

逆向网际速递——解密网络加速试用期之谜[LCG]

感谢各位的捧场,今天仍然以网际速递为例子,主要是对其试用期算法的逆向分析。
首先,我们需要认识两个部分:
1.PartA
2.PartB
以前的老版本中,只有PartA,这就是过去删除syrq.dll就可以无限试用的秘密。
在2.9及以上(从我开始破解的那个版本吧,我也只知道这些)便引入了PartB,让一群用户摸不着头脑
所以在2.9左右网络很少见破解版,但这时候我插进去了……
3.0~3.4Beta1的补丁基本采用内存Patch跳转的方法,但这个方法并不是个办法,每次更新都要找地址,很头疼。
于是我花了点时间逆向了试用期算法,终于解开了此类软件的试用期之谜。
-----------------------------------------------------------------------------------
老工具,查找按钮事件,在《利用软件自身途径破解网络验证》提供了工具及方法。
以3.4为蓝本。拨号事件0x0040FBF0。
OD加载,Ctrl+G 0x0040FBF0,F2。
这些步骤都很熟悉了对不~

0040FBF0    6A FF         push    -0x1
0040FBF2    68 4E844D00   push    004D844E
0040FBF7    64:A1 00000000mov   eax, dword ptr fs:
0040FBFD    50            push    eax
0040FBFE    64:8925 0000000>mov   dword ptr fs:, esp
0040FC05    81EC 44010000   sub   esp, 0x144
0040FC0B    53            push    ebx
0040FC0C    55            push    ebp
0040FC0D    56            push    esi
0040FC0E    57            push    edi
0040FC0F    33FF            xor   edi, edi
0040FC11    8BE9            mov   ebp, ecx


基本没什么看头的入口,好戏在后。
F8一段后,发现亮点:
0040FE6F    FF15 F8264E00   call    dword ptr [<&MFC71.#784>]      ; MFC71.#785
0040FE75    68 A49F4E00   push    004E9FA4                         ; \syrq.dll
0040FE7A    8D5424 2C       lea   edx, dword ptr
0040FE7E    52            push    edx
0040FE7F    8D8424 C4000000 lea   eax, dword ptr
0040FE86    50            push    eax
0040FE87    E8 3414FFFF   call    004012C0
0040FE8C    83C4 0C         add   esp, 0xC

syrq.dll即我所说的Part A
开始定位syrq.并准备读取数据。
发现新亮点:
0040FEB8    C68424 5C010000>mov   byte ptr , 0x7
0040FEC0    FF15 70254E00   call    dword ptr [<&MFC71.#578>]      ; MFC71.#578
0040FEC6    68 949F4E00   push    004E9F94                         ; \netapis32.dll
下面看看它的位置:
0040FEEC    FF15 64254E00   call    dword ptr [<&MFC71.#876>]      ; MFC71.#3397
0040FEF2    50            push    eax
eax=003A6D78, (ASCII "C:\WINDOWS\system32\netapis32.dll")

很好,这个就是我们所说的PartB

那这个算法到底是如何计算的呢?
由于我的电脑不知道为什么无法继续调试,所以我们直接分析数据。
用记事本打开C:\WINDOWS\syrq.dll
格式应该是这样的:
abcdefg

ab代表年份的后两位,比如今年是2010,则为10
cd代表月份,比如现在是3月份,则为03
ef代表日期,比如29
g代表什么呢?呵呵,是试用次数!
这样我们就猜解了部分代码。
“反正我这过期了,把g改0继续试用咯!
啊?怎么还提示过期了?!”

没错。这就是PartB的作用!
用记事本打开C:\WINDOWS\system32\netapis32.dll
里面是一段特定的字符串,没什么意思。
但这个是怎么定义我们使用时间的呢?
让我们来测试下。
将syrq.dll内容修改为:
0801011
保存后打开网际速递,点拨号。提示过期
然后看netapis32.dll的信息,貌似内容没变,右键属性
却发现修改时间之类的变更了!
原来netapis32.dll修改时间等就是比如日期b!
如果该时间与syrq时间不一致则用netapis32.dll的时间。

好,我们来总结如何破解:
1.删除netapis32.dll
2.填充syrq.dll,保证7位数,最后一位小于4

这样我们就解决了永不过期~
通过类比我们也就可以破解其他的软件了。

ps520 发表于 2010-3-30 10:22

这个算法玩玩就是了,别过火了。
毕竟要支持国产软件嘛

温柔 发表于 2010-3-30 10:41

PS牛你太厉害了,路过支持下

ps520 发表于 2010-3-30 10:42

PS牛你太厉害了,路过支持下
温柔 发表于 2010-3-30 10:41 http://www.52pojie.cn/images/common/back.gif


    调戏一下而已

另外论坛有mm么~~~

温柔 发表于 2010-3-30 10:50

回复 4# ps520


    当然有啊,比如芊芊妹子。。。

zzage 发表于 2010-3-30 11:01

调戏一下而已

另外论坛有mm么~~~
ps520 发表于 2010-3-30 10:42 http://www.52pojie.cn/images/common/back.gif


    有MM也被抢光了,咋可能轮到你呢~狼多肉少....

uzcool 发表于 2010-3-30 11:14

猥琐的luck

hack_vip 发表于 2010-3-30 12:05

高手,不错!

ps520 发表于 2010-3-30 12:34

:loveliness:不要迷恋哥、哥只是个传说

riusksk 发表于 2010-3-30 12:41

有MM也被抢光了,咋可能轮到你呢~狼多肉少....
zzage 发表于 2010-3-30 11:01 http://www.52pojie.cn/images/common/back.gif


    名花虽有主,哥来松松土!:lol
页: [1] 2 3 4 5 6 7 8
查看完整版本: 逆向网际速递——解密网络加速试用期之谜[LCG]