[软件]国服游戏-路尼亚战记
[工具]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进行处理,非常感谢!