ps520 发表于 2009-10-24 22:11

利用软件自身途径破解网络验证!

【文章标题】: 利用软件自身途径破解网络验证
【文章作者】: Luck
【作者邮箱】: admin@sooluck.cn
【作者主页】: www.sooluck.cn
【作者QQ号】: 466748210
【软件名称】: 网际速递V3.2
【下载地址】: 自己搜索下载
【保护方式】: 网络验证
【编写语言】: Microsoft Visual C++ 7.0 Method2
【使用工具】: OllyDbg,MFC按钮入口地址定位器
【操作平台】: Win Xp Sp3
【软件介绍】: 一个网络加速工具
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
第一次接触这个软件就被猥琐的网络验证迷糊了,因为这种MFC软件我还没有接触过,在请教师父啊cr以后茅塞顿开,最终完成破解版。
首先OllyDbg加载程序。
0041865A >6A 74         push    0x74
0041865C    68 58C24E00   push    004EC258
00418661    E8 F6010000   call    0041885C
00418666    33DB            xor   ebx, ebx
00418668    895D E0         mov   dword ptr , ebx
0041866B    53            push    ebx
干干净净,奇强。
打开程序,选择Vip。提示如下
---------引用--------------
网际速递友好提示
免费用户不能选择VIP 专用服务
器组!欢迎您充值成为我们的付
费VIP用户,享受尊贵的VIP服务
----------------------------
于是用插件寻找Ascll码,杀入。找到:
0040FC80   /7E 11         jle   short 0040FC93
0040FC82   |68 18A04E00   push    004EA018                         ;       网际速递友好提示\n\n免费用户不能选择vip 专用服务\n\n器组!欢迎您充值成为我们的付\n\n费vip用户,享受尊贵的vip服务\n\n
0040FC87   |8BCD            mov   ecx, ebp
0040FC89   |E8 0252FFFF   call    00404E90
0040FC8E   |E9 47100000   jmp   00410CDA

Jle直接改为jmp.这句的意思我猜是判断下拉列表框的现行选中项师父大于9(0~9为免费服务器,其中0为自动选择。)
另外发现了这句:
Ultra String Reference, item 2082
   Address=004117CB
   Disassembly=push    004EA0A0
   Text String=测试用户您好定时断线即将启动\n\n游戏中请及时退出以免游戏断线\n\n您可以30秒之后再次拨号加速,\n\n充值vip即可享受不间断加速服务\n\n

同样也进入:
004117C5   /0F85 8A000000   jnz   00411855
004117CB   |68 A0A04E00   push    004EA0A0                         ; 测试用户您好定时断线即将启动\n\n游戏中请及时退出以免游戏断线\n\n您可以30秒之后再次拨号加速,\n\n充值vip即可享受不间断加速服务\n\n
004117D0   |8D4D CC         lea   ecx, dword ptr
004117D3   |C687 9C110000 0>mov   byte ptr , 0x1
004117DA   |FF15 1C224E00   call    dword ptr [<&MFC71.#304>]      ; MFC71.#304

Jmp掉。

0040F3AF   /74 0C         je      short 0040F3BD
0040F3B1   |68 AC9A4E00   push    004E9AAC                         ;   欢迎免费体验网际速递\n\n\n\n 我们真诚期待您对我们的认可 ! \n\n
0040F3B6   |8BCE            mov   ecx, esi
0040F3B8   |E8 D35AFFFF   call    00404E90
0040F3BD   \8B96 C8110000   mov   edx, dword ptr

Jmp掉。

基本就把可以静态搞掉的繁琐问题和谐,于是保存全部修改,方便后面调试。
加载我们刚才保存的文件,F9。进程结束。直接执行文件。
拿出伟大的消息入口查找器,将图标拖到拨号按钮上。查找(注意不能处于调试状态。)
获得了拨号的函数入口地址:0x0040FAE0
OllyDbg加载,跑起程序。进程终止,Ctrl+F2重新加载,F9成功跑起。
Ctrl+G,粘贴0x0040FAE0

0040FAE0    6A FF         push    -0x1

F2下断。切回程序,按下拨号。OD成功拦下。
现在就该咱F8上场~
F2取消断点,跑吧~数据窗口获得:
0012F63C   003A97F8ASCII "20091024"
0012F640   00000008
0012F644   00000000
0012F648   00000011
0012F64C   0012F878
0012F650   003A6DA8ASCII "C:\WINDOWS\system32"
0012F654   003A9820ASCII "C:\WINDOWS"
0012F658   00000012
0012F65C   7C930202RETURN to ntdll.7C930202 from ntdll.7C92E8E6
0012F660   7C93017BRETURN to ntdll.7C93017B from ntdll.7C9301D1
0012F664   7C9301BBRETURN to ntdll.7C9301BB from ntdll.7C92E8E6
0012F668   003A6548ASCII "test"
0012F66C   7C220078MFC71.7C220078
0012F670   003A97F8ASCII "20091024"
0012F674   003A97F8ASCII "20091024"
0012F678   003AA9E0ASCII "http://www.exunchi.com/mypage/index.php?name=general_products_pay"
0012F67C   003A6DE8ASCII "test"
0012F680   003A6420ASCII "C:\WINDOWS\system32\netapis32.dll"
0012F684   003AA9C0
0012F688   00000000
0012F68C   003A6E08ASCII "091024"
0012F690   00000000

20091024正是今天的日期!
0041005E    85FF            test    edi, edi
00410060    C68424 5C010000>mov   byte ptr , 0x12
00410068    BE 01000000   mov   esi, 0x1
0041006D    0F87 2A010000   ja      0041019D
00410073    72 0A         jb      short 0041007F
00410075    397424 2C       cmp   dword ptr , esi
00410079    0F83 1E010000   jnb   0041019D‘这句飞了,很可疑喔。
于是先Nop掉。下面一个同理Nop。
结果跑到004100CF    FF15 70254E00   call    dword ptr [<&MFC71.#578>]      ; MFC71.#578
004100D5    8D8C24 88000000 lea   ecx, dword ptr
004100DC    E8 DD7E0000   call    <jmp.&MFC71.#1452>
004100E1    68 E0374E00   push    004E37E0
004100E6    8D4424 4C       lea   eax, dword ptr
004100EA    50            push    eax
004100EB    8D4C24 18       lea   ecx, dword ptr
004100EF    51            push    ecx
004100F0    E8 CB11FFFF   call    004012C0
004100F5    83C4 0C         add   esp, 0xC
004100F8    50            push    eax
004100F9    8D4C24 44       lea   ecx, dword ptr
004100FD    C68424 60010000>mov   byte ptr , 0x14
00410105    FF15 68224E00   call    dword ptr [<&MFC71.#781>]      ; MFC71.#781
0041010B    8D4C24 10       lea   ecx, dword ptr
0041010F    C68424 5C010000>mov   byte ptr , 0x12
00410117    FF15 70254E00   call    dword ptr [<&MFC71.#578>]      ; MFC71.#578
0041011D    56            push    esi
0041011E    51            push    ecx

程序就成功地解除了注册限制!郁闷了。
我们保存所有备份。
在我跟踪2.9、3.0、3.1时,每次都是在jge上Nop。而 0041019D下翻就有。于是我们断开链接,重新飞去。
重新加载第一次的备份,然后下断0041019D。
F8到
004102C3    50            push    eax
004102C4    FFD6            call    esi
004102C6    83C4 04         add   esp, 0x4
004102C9    83F8 04         cmp   eax, 0x4
004102CC    0F8D B7080000   jge   00410B89
004102D2    8D4C24 34       lea   ecx, dword ptr
004102D6    FF15 64254E00   call    dword ptr [<&MFC71.#876>]      ; MFC71.#3397
004102DC    50            push    eax
004102DD    FFD6            call    esi
004102DF    83C4 04         add   esp, 0x4

又见Jge.飞向罪恶的深渊。肯定得Nop掉。
00410626   /0F8D 5A020000   jge   00410886
0041062C   |85F6            test    esi, esi
0041062E   |0F8C 52020000   jl      00410886
00410634   |83FF 03         cmp   edi, 0x3
00410637   |0F8D 49020000   jge   00410886
0041063D   |85FF            test    edi, edi
0041063F   |0F8C 41020000   jl      00410886
00410645   |46            inc   esi
00410646   |56            push    esi



Nop掉后面就美好了。
于是在第2备份的基础上,飞向004102CC,Nop掉。
保存为第3备份。这样我们就基本完成了这款软件的破解。
值得注意的是,我们必须通过test账户来使用,因为我们登录时是采用的test。
test账户很多限制都是明码,所以我们得查Ascll码,把这些限制去掉。

把自动更新去掉,因为自动更新会导致我们的补丁挂掉。
0040DDC9   /7E 69         jle   short 0040DE34    ’Jmp
0040DDCB   |8D55 C0         lea   edx, dword ptr
0040DDCE   |68 F0944E00   push    004E94F0                         ; 版本更新:系统检测官方已更新\n\n版本,请您退出软件,重新登录\n\n即可更新。如更新不成功,请登\n\n录官网:www.exunchi.com下载\n\n更新。!
0040DDD3   |52            push    edx
0040DDD4   |FF15 78224E00   call    dword ptr [<&MFC71.#2322>]       ; MFC71.#2322
0040DDDA   |68 80000000   push    0x80
0040DDDF   |E8 48A00000   call    <jmp.&MFC71.#762>

看了看代码应该没有什么问题了。保存为第4备份。
至此,我们就完成了一款加速软件的破解。
我们的成果就是用test账号登陆VIP线路并且无须担心过期问题咯~

既然破解了,我们就对庞大的体积做点处理吧!
拿出Upx,对其进行压缩。体积一下锐减到467 KB (478,208 字节)。果然是……


--------------------------------------------------------------------------------
【经验总结】
1.通过软件自身提供的试用账号与时间,我们可以达到永久使用的目的;
2.通过对功能限制的解除,我们可以让不完整变为完整。
3.实际上对于任何软件而言都可以这么做,前提是软件含有那些关键代码。只要含有就可以改!
4.善用辅助工具
5.总结经验与不断尝试
6.做好备份

--------------------------------------------------------------------------------
【版权声明】: 本文原创于Luck, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年10月24日 22:06:20

MICO 发表于 2009-10-24 23:52

爆破了吗。。。。

ps520 发表于 2009-10-24 22:13

:lol


这次比较彻底、但是还是免费

Hmily 发表于 2009-10-24 22:23

爆破了?分析的不错~

gps 发表于 2009-10-24 22:49

看到网络验证我就头大 学习了

wogeshange 发表于 2009-10-24 23:24

学习一下,分析很透彻

wangkui 发表于 2009-10-24 23:34

破解了以后的软件分享下啊这个网络加速工具我用过很不错

wangkui 发表于 2009-10-24 23:38

果然是好东西 支持了也学习了如此详细的教程管理应该加精

a99521520 发表于 2009-10-25 00:06

学习支持下

qiyes 发表于 2009-10-25 00:59

呵呵,学习一下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 利用软件自身途径破解网络验证!