点击上方蓝字关注我们
游戏外挂的开发涉及多种技术和方法,常用的程序开发技术包括以下几种:内存修改技术、代码注入、网络封包分析与修改、图像识别与处理、动作模拟技术。
本次细说对内存修改技术的分析,单机游戏的大部分参数(如血量、蓝量、金币等)存储在内存中,其余参数则加密后写入本地配置文件;对于网络游戏,通过分析变量的变化和破解相关函数,可以找到一些关键参数,然后通过指针偏移获取内存基址,提升权限并写入自定义数值,从而修改游戏中的相关数值。
以某单机游戏为例进行简单测试
在CE中加载该游戏进程。找到想修改的数值并输入,例如游戏中起始生命值为100。
在游戏中改变数值(例如现在消耗生命值到62),在CE中多次扫描找到偏移内存地址。
扫描到后直接把数值修改为10000,返回游戏可发现数值改变,且掉血超过初始生命值也不影响(本次测试只修改本地数据,未对游戏服务器数据进行修改)。
如果游戏程序是一个大型的网络游戏,不像上述这种简单的单机小游戏,可能一个技能或者血条的内存地址会偏移多次,最后得到的一个内存地址也叫物理地址,一个游戏的物理地址是等于基址加上偏移地址,上述测试的内容也只是一次性的修改,修改的不是游戏的物理地址,重新开启游戏后进程ID发生变化,修改的内容也会失效。
再以我司协助打击的DNF某外挂程序为例
针对有源代码的游戏外挂程序,主要通过对程序运行逻辑的分析,判断该程序使用的技术原理,找到其是否有突破游戏的安全保护措施,或未经授权对游戏数据进行修改。
该DNF外挂程序主要也是使用内存修改技术去修改游戏的数据,用CE程序类似上述测试扫描的方式,找到要修改的内容和对应的物理地址,将其保存后写入代码中进行调用,或者调用Windows系统库的kernel32.dll文件,其中包含了内存操作的API,再利用代码调用API。
以下这部分程序的源代码,主要功能是自动寻路,对该段代码进行分析得到:子程序“自动寻路”是通过从指定的进程ID和房间编号计算房间数据的内存地址,读取游戏中的地图数据,包括地图尺寸、临时变量和地图通道的数值,并计算起始点到终点的消耗疲劳,从而实现自动寻路的功能。
结论
在本篇中,通过简单实例探讨了内存修改技术在外挂程序中的应用和实现,强调了该技术在作弊手段中的核心作用。再通过对具体案例的分析,展示了内存修改技术如何被用来实现对游戏数据的篡改,为进一步的外挂鉴定和打击提供了技术依据。需要这方面技术服务的客户欢迎联系我司。
点击在看,你最好看
原文始发于微信公众号(万宏蜀盾科技):游戏外挂分析之内存修改篇