游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】Dnf游戏漏洞挖掘第1期 序章

发布于:2018-4-17 10:32   |    166425次阅读 作者: 外部投稿

0x1:

什么是游戏外挂,游戏外挂就是通过非正常手段串改/读取游戏客户端数据达到影响游戏逻辑的程序。

怎么样制作游戏外挂,通过逆向分析游戏,找到关键的游戏数据,串改之来达到作弊的效果。

为什么要研究游戏外挂,找到游戏的漏洞,为游戏厂商提供更安全的防护措施,来达到维护游戏正常平衡的效果,只有知彼知己,才能百战不殆。

 

0x2:

前期的准备,为了更好的学习效果,建议你使用与本文的相同软/硬件环境。

操作系统:windows 10  x64  1709

硬件配置:

动态调试工具: cheat8专用ollydbg

 

数据分析工具:奇特吧专用CE

 

od和ce的详细使用方法,可以参考网络上的使用文档。本文下面也会对各工具进行大致的操作说明。下面就让我们以一个最简单的例子来入门吧。

0x3:

首先,运行游戏后,打开我们的动态调试工具ollydbg,然后点击左上角的文件,附加。

 

 

在新出来的窗口中,我们找到名字为dnf.exe的程序,点击附加。很明显这个就是游戏的主程序

 

然后耐心的等待我们的动态调试ollydbg处理完成,在此之间,你会发现游戏的画面动不了了,这是因为游戏已经被ollydbg暂停住了,稍等一会后,OD分析完成,来到下面的界面

这个时候,我们按下键盘下的F9,让游戏恢复运行。然后,你就可以看到游戏恢复正常了。

 

0x4:

下面,我们要讲解一些OD给我们输出的一些信息。点击OD菜单中的E,就可以看到游戏加载了哪些模块文件

在这里,我们可以看到第一项,也是最重要的一项,就是游戏的主模块 dnf.exe,它的基址是0x00400000,大小是0x060C1000,非常的大。那么我们需要找一些关键数据也就是在这里的主模块中寻找了。

线程窗口为我们展示了游戏中正在运行的所有的线程的详细信息。

 

接下来,打开我们的CE,然后打开游戏进程。

然后开始搜索我们的血量

利用差异化,循环搜索

最终得到4个值,前面2个绿色的,可以发现是GameRpcs.dll中的值,不在我们要找的主模块中,可以忽略掉,

剩下来2个,54443760和544439A8,我们就要用OD进行动态跟踪了,

我们在数据窗口中,按下CTRL+G前往第一个地址

然后对其下硬件读取断点

然后改变一下我们的血量,就会发现已经中断下来了

 

我们可以观察到,实际上这个地址就是这个函数的第一个参数

我们按下键盘的F8,一直往下走,一直到走出来为止

接下来,就可以继续往上分析,找到真正的基址,第一篇完。




来源:邮件投稿

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩2 赞0

收藏

最新评论
引用 时光 2018-4-26 06:09
主要是你用的软件哪里有?最好别带危险程序。
引用 zusheng 2018-4-17 11:21
奇特吧你这CE怎么就特殊了啊

查看全部评论(2)

B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部