吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11108|回复: 25
收起左侧

[分享] 加速啦!加速器V1.3分析报告[LCG]

[复制链接]
ps520 发表于 2010-10-4 23:37
Luck的博客:http://luck.syser.org/
原帖地址:http://luck.syser.org/post-5.html
------------------------------------------------
OD加载后搜索字符串,程序比较干净,没多大功夫找到几处check.
00410460   /7E 11           jle     short 00410473
00410462   |68 600A5600     push    00560A60                         ;       加速啦!友好提示\n\n免费用户不能选择vip 专用服务\n\n器组!欢迎您充值成为我们的付\n\n费vip用户,享受尊贵的vip服务\n\n
00410467   |8BCB            mov     ecx, ebx
00410469   |E8 8245FFFF     call    004049F0
0041046E   |E9 500C0000     jmp     004110C3
00410473   \8D4D 50         lea     ecx, dword ptr [ebp+50]
00410476    FF15 78885500   call    dword ptr [<&MFC80.#310>]        ; MFC80.#310
0041047C    8D4D 5C         lea     ecx, dword ptr [ebp+5C]
修改:00410460   /EB 11           jmp     short 00410473
VIP线路限制解除。

然而这个软件比较麻烦的是,它是通过列表框来选择的,而在打开“设置”的同时会SendMessage,如果不是
VIP就会设置列表框、按钮属性为禁止使用,所以需要修改2处代码来过VIP限制选择时的限制。

同样是字符串:
抱歉,测试用户暂不能选择vip节点,是否升级到vip?
双击进入代码地址,不要直接改,我们从事件头跟起或许有新发现:
004155E0    6A FF           push    -1
004155E2    68 6CE15300     push    0053E16C
004155E7    64:A1 00000000  mov     eax, dword ptr fs:[0]
004155ED    50              push    eax
004155EE    83EC 3C         sub     esp, 3C
004155F1    53              push    ebx
004155F2    55              push    ebp
004155F3    56              push    esi
004155F4    57              push    edi
004155F5    A1 5C485A00     mov     eax, dword ptr [5A485C]
004155FA    33C4            xor     eax, esp
004155FC    50              push    eax
004155FD    8D4424 50       lea     eax, dword ptr [esp+50]
00415601    64:A3 00000000  mov     dword ptr fs:[0], eax
00415607    8BF1            mov     esi, ecx
下断004155E0
切回主界面后点按钮,疯狂地石头啊~~~
00415615   /0F84 A1000000   je      004156BC
0041561B   |8B86 FC000000   mov     eax, dword ptr [esi+FC]
00415621   |8B2D CC935500   mov     ebp, dword ptr [<&USER32.SendMes>; USER32.SendMessageA
00415627   |6A 02           push    2
00415629   |6A FF           push    -1
0041562B   |68 0C100000     push    100C
00415630   |50              push    eax
00415631   |FFD5            call    ebp
jmp实现了。看到下面就是SendMessage,想到限制,不觉一惊。它是默认属性为禁止使用,然后按钮
点下时check,如果是正式用户就SendMessage解锁。
继续下走:
00415638   /0F84 39010000   je      00415777
0041563E   |8B96 FC000000   mov     edx, dword ptr [esi+FC]
00415644   |8D4C24 1C       lea     ecx, dword ptr [esp+1C]
无极神跳,跳了以后打死别想解锁了。这里需要Nop。
修改:00415638   /0F84 39010000   je      00415777           'Nop,不过默认会通过
004156BA   /EB 05           jmp     short 004156C1
004156BC   |BD 01000000     mov     ebp, 1
004156C1   \399E D4000000   cmp     dword ptr [esi+D4], ebx
004156C7    0F85 AA000000   jnz     00415777
004156CD    68 30095600     push    00560930                         ; http://www.jiasu.la/pay.html
004156D2    8D4C24 68       lea     ecx, dword ptr [esp+68]
004156D6    FF15 50835500   call    dword ptr [<&MFC80.#304>]        ; MFC80.#6734
004156DC    6A 04           push    4
无极神跳,不跳就永远不给解锁。
这里跳比较合适,基本这里跳了就除掉VIP选择时的限制了。(不过得双击线路)
004156C7    0F85 AA000000   jnz     00415777  'jmp掉
修改:004156C7   /E9 AB000000     jmp     00415777
那个按钮不能点其实解决很简单:用灰色按钮突破,点一下就OK.
既然大家对按钮比较感兴趣,来讲讲怎么过按钮吧:
因为check是否为test,然后加限制。所以搜索test字符串。
第一次停刚才那列表,无视;
第二次来到按钮点下的事件。
004158A0    6A FF           push    -1
004158A2    68 DAE15300     push    0053E1DA
004158A7    64:A1 00000000  mov     eax, dword ptr fs:[0]
004158AD    50              push    eax
004158AE    83EC 0C         sub     esp, 0C
004158B1    53              push    ebx
004158B2    56              push    esi
004158B3    57              push    edi
004158B4    A1 5C485A00     mov     eax, dword ptr [5A485C]
004158B9    33C4            xor     eax, esp
004158BB    50              push    eax
004158BC    8D4424 1C       lea     eax, dword ptr [esp+1C]
004158C0    64:A3 00000000  mov     dword ptr fs:[0], eax
004158C6    8BF1            mov     esi, ecx
004158C8    6A 04           push    4
004158CA    8D4424 1C       lea     eax, dword ptr [esp+1C]
004158CE    8DBE D8000000   lea     edi, dword ptr [esi+D8]
004158D4    33DB            xor     ebx, ebx
004158D6    50              push    eax
004158D7    8BCF            mov     ecx, edi
004158D9    895C24 1C       mov     dword ptr [esp+1C], ebx
004158DD    FF15 3C845500   call    dword ptr [<&MFC80.#3997>]       ; MFC80.#3997
004158E3    68 CC015600     push    005601CC                         ; test
004158E8    8BC8            mov     ecx, eax
004158EA    895C24 28       mov     dword ptr [esp+28], ebx
004158EE    C74424 18 01000>mov     dword ptr [esp+18], 1
004158F6    FF15 78835500   call    dword ptr [<&MFC80.#1482>]       ; MFC80.#1482
004158FC    85C0            test    eax, eax
004158FE    75 12           jnz     short 00415912
00415900    8BCF            mov     ecx, edi
00415902    FF15 AC865500   call    dword ptr [<&MFC80.#2902>]       ; MFC80.#2902
00415908    83F8 04         cmp     eax, 4
0041590B    C64424 13 01    mov     byte ptr [esp+13], 1
00415910    74 04           je      short 00415916
00415912    885C24 13       mov     byte ptr [esp+13], bl
00415916    8D4C24 18       lea     ecx, dword ptr [esp+18]
0041591A    C74424 24 FFFFF>mov     dword ptr [esp+24], -1
00415922    FF15 B8865500   call    dword ptr [<&MFC80.#578>]        ; MFC80.#578
00415928    385C24 13       cmp     byte ptr [esp+13], bl
0041592C    8BCE            mov     ecx, esi
0041592E    74 0F           je      short 0041593F
00415930    889E D0000000   mov     byte ptr [esi+D0], bl
00415936    899E D4000000   mov     dword ptr [esi+D4], ebx
0041593C    53              push    ebx
0041593D    EB 13           jmp     short 00415952
0041593F    C686 D0000000 0>mov     byte ptr [esi+D0], 1
00415946    C786 D4000000 0>mov     dword ptr [esi+D4], 1
00415950    6A 01           push    1
00415952    6A 01           push    1
00415954    E8 C9260000     call    <jmp.&MFC80.#2657>
00415959    8BC8            mov     ecx, eax
0041595B    E8 882D0000     call    <jmp.&MFC80.#2164>
00415960    6A 01           push    1
00415962    8BCE            mov     ecx, esi
00415964    E8 87F7FFFF     call    004150F0
00415969    8B4C24 1C       mov     ecx, dword ptr [esp+1C]
0041596D    64:890D 0000000>mov     dword ptr fs:[0], ecx
00415974    59              pop     ecx
00415975    5F              pop     edi
00415976    5E              pop     esi
00415977    5B              pop     ebx
00415978    83C4 18         add     esp, 18
0041597B    C3              retn

004158A0    6A FF           push    -1 是按钮入口事件,直接F2
切回主界面,点设置。再点VIP线路。
就会停下来。接下来的事就是跑呗~
F8进行曲……
004158E3    68 CC015600     push    005601CC                         ; test
004158E8    8BC8            mov     ecx, eax
004158EA    895C24 28       mov     dword ptr [esp+28], ebx
004158EE    C74424 18 01000>mov     dword ptr [esp+18], 1
004158F6    FF15 78835500   call    dword ptr [<&MFC80.#1482>]       ; MFC80.#1482
004158FC    85C0            test    eax, eax
004158FE    75 12           jnz     short 00415912
00415900    8BCF            mov     ecx, edi
00415902    FF15 AC865500   call    dword ptr [<&MFC80.#2902>]       ; MFC80.#2902
是否为test,是的话就不跳。
所以004158FE   /75 12           jnz     short 00415912  改JMP即可~
修改:004158FE   /EB 12           jmp     short 00415912

不过相比之下我喜欢从列表框直接双击,更快。呵呵~
接下来就是破解三天试用了(根据破解思想:最小成本最大利益,破解3天试用就和VIP没区别了)
这里我们可以分为逆向算法和硬Patch。
算法没什么技术含量,详细请参考之前网际速递的算法分析文章。
主要check就俩文件:
winsysad.dll、express32.dll
生成目录一般一个是在Windows下一个是在system32下
(所以我说开个360外加按钮突破就可以秒了这个VIP,真是悲剧。ps:按钮因为默认test灰色,所以连check VIP都没。)
winsysad.dll存事件,express32.dll似有还无。设置express32.dll的文件修改时间来做的暗桩。
方法就是删掉这俩文件,以后就特别干净了。
下面介绍硬Patch(这些是总结网际速递的经验,所以可以直接运用。ps,这个软件框架真像网际速递):
搜索“期限已”3个字,找到3个限制提示。
管他的,进入代码后一顿上翻:
0041065B   /0F87 32010000   ja      00410793
00410661   |72 09           jb      short 0041066C
00410663   |83FF 01         cmp     edi, 1
00410666   |0F83 27010000   jnb     00410793
0041066C   |837D 58 00      cmp     dword ptr [ebp+58], 0
00410670   |77 47           ja      short 004106B9
00410672   |72 06           jb      short 0041067A
00410674   |837D 54 01      cmp     dword ptr [ebp+54], 1
00410678   |73 3F           jnb     short 004106B9
这里是个循环,所以不要乱来。
你可以看看哪个是飞向三天试用期满的:
00410666   /0F83 27010000   jnb     00410793

0041088D   /0F8D 89070000   jge     0041101C
00410893   |8D4D 30         lea     ecx, dword ptr [ebp+30]
00410896   |FF15 B0865500   call    dword ptr [<&MFC80.#876>]        ; MFC80.#3397
0041089C   |50              push    eax
0041089D   |FFD6            call    esi
0041089F   |83C4 04         add     esp, 4
004108A2   |83F8 04         cmp     eax, 4
004108A5   |0F8D 71070000   jge     0041101C

00410B54   /0F8D C6010000   jge     00410D20
00410B5A   |85F6            test    esi, esi
00410B5C   |0F8C BE010000   jl      00410D20
00410B62   |83FF 03         cmp     edi, 3
00410B65   |0F8D B5010000   jge     00410D20
00410B6B   |85FF            test    edi, edi
00410B6D   |0F8C AD010000   jl      00410D20

这是一个群组,最好过期的时候跟下,因为实在太多了。我只能暂时通过静态分析提供这些。
该Nop的Nop,该Jmp的JMP。手工就是了。
总结一下这个软件:
好的地方是,SendMessage解锁,这个的确可能麻痹一部分人。
坏的地方是,字符串无视SendMessage解锁,直接找到关键跳。
如果你学习了一门编程语言你就会猜到作者想干什么,然后可以很快找到法门。
OK,逆向分析报告,可以睡觉了~
                                                                                      By ps520[LCG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ps520 发表于 2010-10-4 23:40
发补丁不地道,发个分析文章出来玩玩。
最开始发的时候只管破解,没管其他的。
今晚有空详细分析了这个软件的限制功能。

我个人觉得最要命的是:
在选择VIP线路时,有2个校验。
按钮灰色是一个,这个的好处是按钮如果激活就没校验了
双击列表框是一个,上面的SendMessageA是关键,合适的Patch位置也比较重要。
补丁Patch的位置偏后,所以还补了行代码。
分析文Patch地址合适,所以只Patch那一行就OK
qq314024716 发表于 2010-10-4 23:41
请问楼主,你的这些数据和代码是怎样打开的呀
30878196 发表于 2010-10-4 23:47
qq260893875 发表于 2010-10-4 23:48
看不明,但努力学习!
blarm 发表于 2010-10-4 23:54
这么多 这么长 看完都需要耐心啊 ...
sanshao27 发表于 2010-10-4 23:59
好东西,mark!!
破解小乖 发表于 2010-10-5 00:11
谢谢分享了。。。
 楼主| ps520 发表于 2010-10-5 11:52
请问楼主,你的这些数据和代码是怎样打开的呀
qq314024716 发表于 2010-10-4 23:41



   OD分析的、怎么了?
2666fff 发表于 2010-10-5 15:25
你的博客出汗了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 10:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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