网络游戏外挂的破解

  • 内容
  • 评论
  • 相关

一个打台球的网络游戏外挂 由于原服务器关闭,所以分析了一下网络验证部分

做了个内存补丁,搞定。并且自己做了个服务主机。

试用的时候 用户和密码都为空

[下载]

【文章标题】: 中游球皇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全功能版(防远程)
  
  
  
  
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

评论

12条评论
  1. Gravatar 头像

    QQ:264807732 回复

    我想购买着个软件。。怎么联系你?

    我的QQ:264807732

  2. Gravatar 头像

    zns904 回复

    我是个电脑盲,对软件又不太了解懂,想请你们帮忙:我前2个月买的球皇7.0承诺是终身使用权,现在软件的作者跑了(是个大骗子)软件验证的服务器也停 ,软件需要网络验证才能用,软件作者真可恶骗了钱就逃之夭夭好可怜啊,请你好心帮忙破解球皇7.0(就是不要验证直接可以用)求求你了, 一定要帮我,在这里先谢谢你们了, 搞好后发到zns904@sina.com  一定要帮忙啊!!!如需要定给适当的报酬

    你QQ多少?请告知

                请:QQ554281670 (林一博客)或者zns904@sina.com 与我联系  谢谢!!!!

  3. Gravatar 头像

    一个台球爱好者 回复

    你好,我是一个台球爱好者,你的这个软件不错,可否帮我做成个本地试用版的,我想用此软件练习下开球,不需要完全版的,可否免费帮我做个,谢谢了,一个台球爱好者对你恳求和谢意,我的邮箱tjling168168@126.com qq:379340712

  4. Gravatar 头像

    一个台球爱好者 回复

    因为我不是随处可以上网,可否做个不要上网的本地试用版的,谢谢,联系方式同上,谢谢了~!

  5. Gravatar 头像

    没有破解完全 回复

    没有破解完全,根本不准,只是有线条,以前的很准的

  6. Gravatar 头像

    输死了 回复

    我想买7.0的外挂

    联系我QQ247267

  7. Gravatar 头像

    没办法 回复

    你好 !!!我想买7.0外挂 怎么联系你 我Q:597237740

  8. Gravatar 头像

    没办法 回复

    想买你的球皇外挂!!!可是你总没上Q ?怎么联系你!!!

    我Q:597237740

  9. Gravatar 头像

    过雨云 回复

    你的破解版好像不行  想买能正常使用  准度高 能防远程的

    联系QQ:137417605

  10. Gravatar 头像

    不准确 回复

    你的球皇7.0破解版 走位和准确率都不行~[s:13]没有完全破解吧

  11. Gravatar 头像

    如何购买正版的软件 回复

    如何购买正版的软件

发表评论

电子邮件地址不会被公开。 必填项已用*标注