首页
社区
课程
招聘
[旧帖] [原创]中游球皇7.0网络验证分析 0.00雪花
发表于: 2007-3-7 14:02 9439

[旧帖] [原创]中游球皇7.0网络验证分析 0.00雪花

2007-3-7 14:02
9439
【文章标题】: 中游球皇7.0网络验证分析
【文章作者】: atomy
【软件名称】: 中游球皇7.0
【下载地址】: 自己搜索下载
【保护方式】: themida
【使用工具】: ollyice,winhex,peid
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  看到论坛有人发了想要用这个软件 于是下来练手。
  安装 用peid查看 天啊 竟然是 themida 看来没必要脱壳了。 只好 设置 hideod 的选项 动态调试了
  钩选两住
  HideNtDebugBit  
  ZwQueryInformationProcess/method2
  Shift + F9 运行 (不能直接按F9)
  ok 程序在ollyice下正常运行 首先是一个登录窗口 我开始还以为是一个网络游戏软件呢。呵呵 其实是一个台球外挂
  
  现在是下断点问题了。 我想 如果该软件使用登录方法一定要到网上去验证 就会使用到Socket 于是
  bp socket
  随便输入用户名和密码点击登录
  程序被断下 Alt + F9 返回用户代码然后一直F8 跟到 返回 retn :
  
  00402B14    E8 ABDA0500     call    004605C4                         ; 登录网络验证
  00402B19    8D4D E0         lea     ecx, dword ptr [ebp-20]
  00402B1C    8BD8            mov     ebx, eax
  00402B1E    51              push    ecx
  00402B1F    8BCB            mov     ecx, ebx
  00402B21    895D E4         mov     dword ptr [ebp-1C], ebx
  00402B24    897D FC         mov     dword ptr [ebp-4], edi
  00402B27    E8 A0E40500     call    00460FCC
  00402B2C    817D E0 C800000>cmp     dword ptr [ebp-20], 0C8
  00402B33    74 29           je      short 00402B5E                   ; 返回值为200才是正常连接互联网 否则服务器连接出错 这里要修改jnz
  
  ok 继续往下跟踪
  
  00402B94    83C4 08         add     esp, 8
  00402B97    8D4D DC         lea     ecx, dword ptr [ebp-24]
  00402B9A    85C0            test    eax, eax
  00402B9C    0F94C3          sete    bl
  00402B9F    E8 8F980500     call    0045C433
  00402BA4    84DB            test    bl, bl
  00402BA6    74 29           je      short 00402BD1
  00402BA8    6A 1C           push    1C
  00402BAA    8D4D D8         lea     ecx, dword ptr [ebp-28]
  00402BAD    E8 EF980500     call    0045C4A1
  00402BB2    8B00            mov     eax, dword ptr [eax]
  00402BB4    8BCE            mov     ecx, esi
  00402BB6    50              push    eax
  00402BB7    68 F2030000     push    3F2
  00402BBC    C645 FC 08      mov     byte ptr [ebp-4], 8
  00402BC0    E8 669D0500     call    0045C92B                         ; 用户名不存在
  00402BC5    C645 FC 07      mov     byte ptr [ebp-4], 7
  00402BC9    8D4D D8         lea     ecx, dword ptr [ebp-28]
  00402BCC    E9 EF010000     jmp     00402DC0
  00402BD1    6A 1D           push    1D
  00402BD3    8D4D D4         lea     ecx, dword ptr [ebp-2C]
  00402BD6    E8 C6980500     call    0045C4A1
  00402BDB    8B00            mov     eax, dword ptr [eax]
  00402BDD    50              push    eax
  00402BDE    8B45 EC         mov     eax, dword ptr [ebp-14]
  00402BE1    50              push    eax
  00402BE2    E8 AA890400     call    0044B591
  00402BE7    83C4 08         add     esp, 8
  00402BEA    8D4D D4         lea     ecx, dword ptr [ebp-2C]
  00402BED    85C0            test    eax, eax
  00402BEF    0F94C3          sete    bl
  00402BF2    E8 3C980500     call    0045C433
  00402BF7    84DB            test    bl, bl
  00402BF9    74 29           je      short 00402C24
  00402BFB    6A 1D           push    1D
  00402BFD    8D4D D0         lea     ecx, dword ptr [ebp-30]
  00402C00    E8 9C980500     call    0045C4A1
  00402C05    8B00            mov     eax, dword ptr [eax]
  00402C07    8BCE            mov     ecx, esi
  00402C09    50              push    eax
  00402C0A    68 F2030000     push    3F2
  00402C0F    C645 FC 09      mov     byte ptr [ebp-4], 9
  00402C13    E8 139D0500     call    0045C92B                         ; 密码错误
  00402C18    C645 FC 07      mov     byte ptr [ebp-4], 7
  00402C1C    8D4D D0         lea     ecx, dword ptr [ebp-30]
  00402C1F    E9 9C010000     jmp     00402DC0
  00402C24    6A 20           push    20
  00402C26    8D4D CC         lea     ecx, dword ptr [ebp-34]
  00402C29    E8 73980500     call    0045C4A1
  00402C2E    8B00            mov     eax, dword ptr [eax]
  00402C30    8B4D EC         mov     ecx, dword ptr [ebp-14]
  00402C33    50              push    eax
  00402C34    51              push    ecx
  00402C35    E8 57890400     call    0044B591
  00402C3A    83C4 08         add     esp, 8
  00402C3D    8D4D CC         lea     ecx, dword ptr [ebp-34]
  00402C40    85C0            test    eax, eax
  00402C42    0F94C3          sete    bl
  00402C45    E8 E9970500     call    0045C433
  00402C4A    84DB            test    bl, bl
  00402C4C    74 3A           je      short 00402C88
  00402C4E    6A 03           push    3
  00402C50    8BCE            mov     ecx, esi
  00402C52    E8 59F4FFFF     call    004020B0
  00402C57    84C0            test    al, al
  00402C59    0F85 AD010000   jnz     00402E0C
  00402C5F    6A 1E           push    1E
  00402C61    8D4D C8         lea     ecx, dword ptr [ebp-38]
  00402C64    E8 38980500     call    0045C4A1
  00402C69    8B00            mov     eax, dword ptr [eax]
  00402C6B    8BCE            mov     ecx, esi
  00402C6D    50              push    eax
  00402C6E    68 F2030000     push    3F2
  00402C73    C645 FC 0A      mov     byte ptr [ebp-4], 0A
  00402C77    E8 AF9C0500     call    0045C92B                         ; 试用期已满
  00402C7C    C645 FC 07      mov     byte ptr [ebp-4], 7
  00402C80    8D4D C8         lea     ecx, dword ptr [ebp-38]
  00402C83    E9 38010000     jmp     00402DC0
  
  上面是检查特定值的 来设置提示信息
  但由于我们是通过修改 200处的跳转 所以 程序是找不到那些特定代码的 于是一直走到下面
  
  00402C88    6A 21           push    21
  00402C8A    8D4D C4         lea     ecx, dword ptr [ebp-3C]
  00402C8D    E8 0F980500     call    0045C4A1
  00402C92    8B00            mov     eax, dword ptr [eax]
  00402C94    8B55 EC         mov     edx, dword ptr [ebp-14]
  00402C97    50              push    eax
  00402C98    52              push    edx
  00402C99    E8 F3880400     call    0044B591
  00402C9E    83C4 08         add     esp, 8
  00402CA1    8D4D C4         lea     ecx, dword ptr [ebp-3C]
  00402CA4    85C0            test    eax, eax
  00402CA6    0F94C3          sete    bl
  00402CA9    E8 85970500     call    0045C433                         ; 中游球皇7.0单功能版-美式
  00402CAE    84DB            test    bl, bl
  00402CB0    0F85 5E010000   jnz     00402E14                          
  00402CB6    6A 22           push    22
  00402CB8    8D4D C0         lea     ecx, dword ptr [ebp-40]
  00402CBB    E8 E1970500     call    0045C4A1
  00402CC0    8B00            mov     eax, dword ptr [eax]
  00402CC2    50              push    eax
  00402CC3    8B45 EC         mov     eax, dword ptr [ebp-14]
  00402CC6    50              push    eax
  00402CC7    E8 C5880400     call    0044B591
  00402CCC    83C4 08         add     esp, 8
  00402CCF    8D4D C0         lea     ecx, dword ptr [ebp-40]
  00402CD2    85C0            test    eax, eax
  00402CD4    0F94C3          sete    bl
  00402CD7    E8 57970500     call    0045C433                         ; 中游球皇7.0单功能版-斯诺克
  00402CDC    84DB            test    bl, bl
  00402CDE    0F85 3C010000   jnz     00402E20
  00402CE4    6A 23           push    23
  00402CE6    8D4D BC         lea     ecx, dword ptr [ebp-44]
  00402CE9    E8 B3970500     call    0045C4A1
  00402CEE    8B00            mov     eax, dword ptr [eax]
  00402CF0    8B4D EC         mov     ecx, dword ptr [ebp-14]
  00402CF3    50              push    eax
  00402CF4    51              push    ecx
  00402CF5    E8 97880400     call    0044B591
  00402CFA    83C4 08         add     esp, 8
  00402CFD    8D4D BC         lea     ecx, dword ptr [ebp-44]
  00402D00    85C0            test    eax, eax
  00402D02    0F94C3          sete    bl
  00402D05    E8 29970500     call    0045C433                         ; 中游球皇7.0全功能版.斯诺克
  00402D0A    84DB            test    bl, bl
  00402D0C    0F85 1A010000   jnz     00402E2C                         ; 全功能
  00402D12    6A 4F           push    4F
  00402D14    8D4D B8         lea     ecx, dword ptr [ebp-48]
  00402D17    E8 85970500     call    0045C4A1
  00402D1C    8B00            mov     eax, dword ptr [eax]
  00402D1E    8B55 EC         mov     edx, dword ptr [ebp-14]
  00402D21    50              push    eax
  00402D22    52              push    edx
  00402D23    E8 69880400     call    0044B591
  00402D28    83C4 08         add     esp, 8
  00402D2B    8D4D B8         lea     ecx, dword ptr [ebp-48]
  00402D2E    85C0            test    eax, eax
  00402D30    0F94C3          sete    bl
  00402D33    E8 FB960500     call    0045C433                         ; 中游球皇7.0单功能版-美式(防远程)
  00402D38    84DB            test    bl, bl
  00402D3A    0F85 F8000000   jnz     00402E38
  00402D40    6A 50           push    50
  00402D42    8D4D B4         lea     ecx, dword ptr [ebp-4C]
  00402D45    E8 57970500     call    0045C4A1
  00402D4A    8B00            mov     eax, dword ptr [eax]
  00402D4C    50              push    eax
  00402D4D    8B45 EC         mov     eax, dword ptr [ebp-14]
  00402D50    50              push    eax
  00402D51    E8 3B880400     call    0044B591
  00402D56    83C4 08         add     esp, 8
  00402D59    8D4D B4         lea     ecx, dword ptr [ebp-4C]
  00402D5C    85C0            test    eax, eax
  00402D5E    0F94C3          sete    bl
  00402D61    E8 CD960500     call    0045C433                         ; 中游球皇7.0单功能版-斯诺克(防远程)
  00402D66    84DB            test    bl, bl
  00402D68    0F85 D6000000   jnz     00402E44
  00402D6E    6A 51           push    51
  00402D70    8D4D B0         lea     ecx, dword ptr [ebp-50]
  00402D73    E8 29970500     call    0045C4A1
  00402D78    8B00            mov     eax, dword ptr [eax]
  00402D7A    8B4D EC         mov     ecx, dword ptr [ebp-14]
  00402D7D    50              push    eax
  00402D7E    51              push    ecx
  00402D7F    E8 0D880400     call    0044B591
  00402D84    83C4 08         add     esp, 8
  00402D87    8D4D B0         lea     ecx, dword ptr [ebp-50]
  00402D8A    85C0            test    eax, eax
  00402D8C    0F94C3          sete    bl
  00402D8F    E8 9F960500     call    0045C433                         ; 中游球皇7.0全功能版(防远程)
  00402D94    84DB            test    bl, bl
  00402D96    0F85 B4000000   jnz     00402E50
  
  上面代码可知道 该软件通过返回的数据来设置软件的版本 如果需要用哪个版本 修改那个call下面的 对比就可以了
  
  继续跟踪到retn 来到主函数住
  
  00401A64    E8 E70F0000     call    00402A50    ;网络登录验证版本之类
  00401A69    84C0            test    al, al
  00401A6B    0F84 F7050000   je      00402068
  00401A71    8BCE            mov     ecx, esi
  00401A73    E8 98140000     call    00402F10    ;网络验证
  00401A78    84C0            test    al, al
  00401A7A    0F84 E8050000   je      00402068
  
  跟进 call    00402F10
  有两个地方要跳
  第一个地方
  00402FC8    E8 FFDF0500     call    00460FCC
  00402FCD    817D E4 C800000>cmp     dword ptr [ebp-1C], 0C8
  00402FD4    74 2A           je      short 00403000                   ; 要跳
  00402FD6    6A 1B           push    1B
  00402FD8    8D4D DC         lea     ecx, dword ptr [ebp-24]
  00402FDB    E8 C1940500     call    0045C4A1
  00402FE0    8B00            mov     eax, dword ptr [eax]
  00402FE2    8BCF            mov     ecx, edi
  00402FE4    50              push    eax
  00402FE5    68 F2030000     push    3F2
  00402FEA    C645 FC 08      mov     byte ptr [ebp-4], 8
  00402FEE    E8 38990500     call    0045C92B                         ; 连接服务器失败
  00402FF3    8D4D DC         lea     ecx, dword ptr [ebp-24]
  00402FF6    885D FC         mov     byte ptr [ebp-4], bl
  00402FF9    E8 35940500     call    0045C433
  00402FFE    EB 29           jmp     short 00403029
  
  第二个地方
  
  00403086    E8 41DF0500     call    00460FCC
  0040308B    817D E4 C800000>cmp     dword ptr [ebp-1C], 0C8
  00403092    74 62           je      short 004030F6                   ; 要跳
  00403094    6A 1B           push    1B
  00403096    8D4D DC         lea     ecx, dword ptr [ebp-24]
  00403099    E8 03940500     call    0045C4A1
  
  因为上面两个地方都是判断是否连接到服务器 所以要跳
  
  ok 回到主函数地址继续往下跟
  
  00401F1E    8BCE            mov     ecx, esi
  00401F20    E8 9DAB0500     call    0045CAC2                         ; 最小化登录窗口
  00401F25    6A 00           push    0
  00401F27    8BCE            mov     ecx, esi
  00401F29    E8 94AB0500     call    0045CAC2                         ; 隐藏登录窗体
  00401F2E    8D8E C0010000   lea     ecx, dword ptr [esi+1C0]
  00401F34    8DBE BC010000   lea     edi, dword ptr [esi+1BC]
  00401F3A    51              push    ecx
  00401F3B    8BCF            mov     ecx, edi
  00401F3D    E8 9A1E0000     call    00403DDC                         ; Core.CCore::TransferData
  00401F42    8BCF            mov     ecx, edi
  00401F44    E8 8D1E0000     call    00403DD6                         ; Core.CCore::Start and HookMessage
  00401F49    6A 40           push    40                               ; 64
  00401F4B    8D8C24 8C000000 lea     ecx, dword ptr [esp+8C]
  00401F52    E8 4AA50500     call    0045C4A1                         ; 应该是加载字符资源
  00401F57    8BF8            mov     edi, eax
  
  到这冒似可以了。 于是shift + f9  哈 运行成功....
  
  
  
  
  
  
--------------------------------------------------------------------------------
【经验总结】
  开始找了好多关于themida如何脱壳的资料 发现这个壳比较难脱。。(难道真的这么难?偶就不信这个邪,以后慢慢研究吧)
  还有分析的时候在call的地方 找了一下寄存器指向的内存才知道这个call的用处了.
  
  这个软件可以写个内存补丁
  
  要修改的地方有几住
  
  必改
  1.00402B33  74 -> 75      验证
  2.00402FD4  74 -> 75      验证
  3.00403092  74 -> 75      验证
  
  可选
   1.00402CB1  85 -> 84  中游球皇7.0单功能版-美式
   2.00402CDF  85 -> 84  中游球皇7.0单功能版-斯诺克
   3.00402D0D  85 -> 84  中游球皇7.0全功能版.斯诺克
   4.00402D3B  85 -> 84  中游球皇7.0单功能版-美式(防远程)
   5.00402D69  85 -> 84  中游球皇7.0单功能版-斯诺克(防远程)
   6.00402D97  85 -> 84  中游球皇7.0全功能版(防远程)
  
  
  
  
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年03月07日 14:01:12

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习学习一下,不错
2007-3-7 16:16
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
3
为啥是74改75而不是EB
2007-3-7 16:24
0
雪    币: 226
活跃值: (30)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
最初由 shoooo 发布
为啥是74改75而不是EB


有道理 。 这里是必跳才可以。
2007-3-7 16:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这位大侠的分析真的另小弟学到不少.....

能否加你的MSN 为日後学习吗.......

小弟只是一个菜鸟...
2007-3-8 00:11
0
雪    币: 215
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了
2007-3-8 08:25
0
雪    币: 226
活跃值: (30)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
最初由 xinjing 发布
这位大侠的分析真的另小弟学到不少.....

能否加你的MSN 为日後学习吗.......

小弟只是一个菜鸟...

偶不用MSN
  有问题可以在这里提出 大家一起解决
2007-3-8 09:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不知LZ试了没有.按照LZ的破解方法,登陆外挂,进入游戏,外挂不能出现瞄准线条
2007-3-8 09:57
0
雪    币: 226
活跃值: (30)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
最初由 大大鱼 发布
不知LZ试了没有.按照LZ的破解方法,登陆外挂,进入游戏,外挂不能出现瞄准线条


偶没装中游,所以没试过呀。 这个分析只是通过网络验证 让程序运行起来
真正要让程序能正常使用还得深入分析才行
2007-3-8 11:26
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
我上网出800块价找别人来破,十来个都说不行,你们能成吗?五年球皇,就这点功力吗?那也太小看球皇,说实话,目前台球瞄准器最好的就是这个球皇7了,虽然球皇关了,但其编程功底天日可见,不同凡想,当初可以试用的时候我就用过,超级厉害,可以说谁拥有,中游天下无敌~~!(此版本是我弄出来的,网上没有,估计球皇开发者对此软件的加密比较放心,不怕人破)
2007-3-8 11:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高手出来分析分析呀~~~!这么厉害呀!
2007-3-10 12:09
0
雪    币: 226
活跃值: (30)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
此外挂以完全被我逆向分析
并且找到了关键点,出于有人存心不良,所以在这里就不发表破解文章了
2007-3-10 16:57
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
流动的情感 此外挂以完全被我逆向分析 并且找到了关键点,出于有人存心不良,所以在这里就不发表破解文章了
你好 能给个联系方式吗 或者 加我QQ9657913 重金 需要此软件
2020-6-28 13:32
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
加我QQ:329043011
2020-8-6 01:43
0
游客
登录 | 注册 方可回帖
返回
//