好友
阅读权限40
听众
最后登录1970-1-1
|
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 [ebp-0x20], 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 [ebp-0x34]
004117D3 |C687 9C110000 0>mov byte ptr [edi+0x119C], 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 [esi+0x11C8]
Jmp掉。
基本就把可以静态搞掉的繁琐问题和谐,于是保存全部修改,方便后面调试。
加载我们刚才保存的文件,F9。进程结束。直接执行文件。
拿出伟大的消息入口查找器,将图标拖到拨号按钮上。查找(注意不能处于调试状态。)
获得了拨号的函数入口地址:0x0040FAE0
OllyDbg加载,跑起程序。进程终止,Ctrl+F2重新加载,F9成功跑起。
Ctrl+G,粘贴0x0040FAE0
0040FAE0 6A FF push -0x1
F2下断。切回程序,按下拨号。OD成功拦下。
现在就该咱F8上场~
F2取消断点,跑吧~数据窗口获得:
0012F63C 003A97F8 ASCII "20091024"
0012F640 00000008
0012F644 00000000
0012F648 00000011
0012F64C 0012F878
0012F650 003A6DA8 ASCII "C:\WINDOWS\system32"
0012F654 003A9820 ASCII "C:\WINDOWS"
0012F658 00000012
0012F65C 7C930202 RETURN to ntdll.7C930202 from ntdll.7C92E8E6
0012F660 7C93017B RETURN to ntdll.7C93017B from ntdll.7C9301D1
0012F664 7C9301BB RETURN to ntdll.7C9301BB from ntdll.7C92E8E6
0012F668 003A6548 ASCII "test"
0012F66C 7C220078 MFC71.7C220078
0012F670 003A97F8 ASCII "20091024"
0012F674 003A97F8 ASCII "20091024"
0012F678 003AA9E0 ASCII "http://www.exunchi.com/mypage/index.php?name=general_products_pay"
0012F67C 003A6DE8 ASCII "test"
0012F680 003A6420 ASCII "C:\WINDOWS\system32\netapis32.dll"
0012F684 003AA9C0
0012F688 00000000
0012F68C 003A6E08 ASCII "091024"
0012F690 00000000
20091024正是今天的日期!
0041005E 85FF test edi, edi
00410060 C68424 5C010000>mov byte ptr [esp+0x15C], 0x12
00410068 BE 01000000 mov esi, 0x1
0041006D 0F87 2A010000 ja 0041019D
00410073 72 0A jb short 0041007F
00410075 397424 2C cmp dword ptr [esp+0x2C], 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 [esp+0x88]
004100DC E8 DD7E0000 call <jmp.&MFC71.#1452>
004100E1 68 E0374E00 push 004E37E0
004100E6 8D4424 4C lea eax, dword ptr [esp+0x4C]
004100EA 50 push eax
004100EB 8D4C24 18 lea ecx, dword ptr [esp+0x18]
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 [esp+0x44]
004100FD C68424 60010000>mov byte ptr [esp+0x160], 0x14
00410105 FF15 68224E00 call dword ptr [<&MFC71.#781>] ; MFC71.#781
0041010B 8D4C24 10 lea ecx, dword ptr [esp+0x10]
0041010F C68424 5C010000>mov byte ptr [esp+0x15C], 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 [esp+0x34]
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 [ebp-0x40]
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 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|