国服游戏封包解密-外挂制作全过程

[软件]国服游戏-路尼亚战记
[工具]OD,Wep,以及其它的一些文本工具
[目的]研究游戏保护技术,深论协议级分析。

意在抛砖引玉,抵制游戏外挂。我会在每个分析点做出一些保护上的思考。

开始正文。

一个多月前,有看过一些游戏,DNF,路尼亚战记。他们大概是属于那种靠操作,连招一张地图一张地图那种游戏。DNF是由腾迅公司代理的,自己做了点不强的小保护,但是还是被别人开发出了外挂。居然还有全屏秒杀怪功能。
从朋友那里大概了解了点游戏开发的一些设计思路,就服务器和客户端而言,有强服务器弱客户端,和强客户端,弱服务器。之类的分别。

大概dnf这样的游戏是属于强客户端这样的游戏,所以才有可能开发出全屏秒杀。二者主要的区别在于,把主要运算是放在服务器端,还是放在客户端。

经过我的分析,像路尼亚战记这样的游戏,是属于强服务器的。

前边所有的东西——我就不说了,开始分析。


首先,注册个帐 ,创建角色,然后登陆游戏。OD–附加游戏进程。

既然是分析协议,我们就在send处下段。


在开始讲解之前,首先要明确以下一些事。第一,我们明确的知道,我们的发送包是经过加密处理了的。第二,我们要明确,我们要分析的send动作大概是什么,比如说走一步,又比如说要打开一个仓库。

对于第二点,我们采用在send处,下段,然后在很快的反映时间里,给游戏一个动作。然后观察send数据。

这里我选择的是打开武器铺,我们发现其打开武器铺的数据长度是0x0e.


71A24288      90            nop
71A24289      90            nop
71A2428A >    8BFF          mov     edi, edi                         ;  dword ptr [esp+0x0c] == 0x0e
71A2428C   .  55            push    ebp
71A2428D   .  8BEC          mov     ebp, esp
71A2428F   .  83EC 10       sub     esp, 10
71A24292   .  56            push    esi
71A24293   .  57            push    edi
71A24294   .  33FF          xor     edi, edi
71A24296   .  813D 2840A371>cmp     dword ptr [71A34028], 71A29448   ;  入口地址
71A242A0   .  0F84 AD730000 je      71A2B653
71A242A6   >  8D45 F8       lea     eax, dword ptr [ebp-8]
71A242A9   .  50            push    eax


下条件断点。

然后,当我们打开武器铺的时候,程序就会中断在那里。

然后,这时候,我们想知道的是,什么时候,其向send数据包里,那段内存写入了数据,我们才能回烁跟踪。

方法很多,我就不一一说了,就针对这个游戏。谈谈…

我们多次打开武器库,观察发现,其每次发送的数据的内存地址都是一个。我们根据这个地方下硬件访问断点就好了。

——-这里,要谈谈游戏保护技术了。我觉得好点的保护,特别是在send点这里,send的数据内存地址,应该尽力保持活跃,跳动。不能一直固定。好象(分析有段时间了,记忆就忘记了),朱仙这点就做的比较好,在send数据的时候。内存点会变。

但是使用alloc和reallloc等函数,又难免会被别人在这些关键点的地方下断点。作为一个破解分析者,首先会考虑的是以最高效的方法做出分析。不会把所有的游戏代码,反汇编读完。所以一些关键点,应该考虑离散性高,偶合性高。高的偶合会让分析者迷茫,找不到关键点。高的离散,会让分析者解读不出确实的意义。

接下来继续。

007332C0    51              push    ecx
007332C1    8B4424 0C       mov     eax, dword ptr [esp+C]
007332C5    85C0            test    eax, eax
007332C7    55              push    ebp
007332C8    8B6C24 0C       mov     ebp, dword ptr [esp+C]
007332CC    57              push    edi
007332CD    8BF9            mov     edi, ecx
007332CF    74 63           je      short 00733334
007332D1    53              push    ebx
007332D2    894424 18       mov     dword ptr [esp+18], eax
007332D6    56              push    esi
007332D7    EB 07           jmp     short 007332E0
007332D9    8DA424 00000000 lea     esp, dword ptr [esp]
007332E0    8A45 00         mov     al, byte ptr [ebp]
007332E3    884424 18       mov     byte ptr [esp+18], al
007332E7    8B47 04         mov     eax, dword ptr [edi+4]
007332EA    8D48 01         lea     ecx, dword ptr [eax+1]
007332ED    894424 10       mov     dword ptr [esp+10], eax
007332F1    04 04           add     al, 4
007332F3    894F 04         mov     dword ptr [edi+4], ecx
007332F6    8D5424 10       lea     edx, dword ptr [esp+10]
007332FA

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年5月20日
下一篇 2016年5月20日

相关推荐