发布于: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)
发表评论