内存修改
谈到内存修改类游戏就不得不提一下2款大名鼎鼎的软件
金山游侠和cheat engine(CE)
前者是国产游戏修改软件的鼻祖,后者可以说是游戏外挂的始作俑者了。
对于单机游戏而言,
游戏中绝大部分的参数(比如血、蓝、能量亦或是金币)都存储在计算机的堆栈中,一些类似剧情进度的则加密后写入本地的自定义配置文件中;
对于页游、网游和手游,
虽然服务器保存了大量的重要的参数,但由于客户端不可避免的需要进行大量的计算和资源的加载,本地内存种必定存有部分的临时变量,通过判断这些变量的变化规律和函数的破密寻到利于自身的参数,比如伤害值一类,继而寻找该变量的内存地址,根据指针偏移分析获得内存基址,再提升权限利用Windows API把自定义数值写入该内存块,就完成了修改某项数值的操作,一般来说,只要破解了一项数值,利用规律继而破解其他数值就更加容易了。
一般套路就是上述,一些防护性强大的游戏会在上述的每一步中都设置难题。
DNF(掉线城与勇士)
DNF在测试服的时候就爆出可以使用金山游侠修改游戏,在正式服上线后金山游侠退出了舞台,CE与WPE成了外挂作者,技术爱好者中最锋利的武器贯穿了阿拉德大陆。
DNF本身在设计时采取的理念就是服务器负责发送与接收数据,不参与数值的计算。简而言之服务器只负责当前角色的货币,装备,材料等资源的获取与消耗情况。但不会检查过程是否合法。而角色的伤害运算则放在本地化进行。CE则可以任意修改数据,达到秒杀、无敌、无CD、3S等基本功能。
绝地求生
筑基级功能:无后,除草,人物上色。(原文件修改)
这种很初级的功能是替换PAK文件达到的,上述很多功能的参数存放在对应的PAK文件中,只要修改这些参数然后替换原文件则可以实现效果
元婴级功能:透视,子弹瞬击,加速,吸空投,秒换子弹,秒吃药。(原有功能加强)
这种类型的功能的相关参数大多是存放在内存中,直接找到基址修改文件则可以实现。
天仙级功能:自瞄,路飞手臂,子弹跟踪,灵魂出窍,炸飞机,空中拳击赛等非常规功能。
这种功能大多是用多种手段组合起来,是原游戏中没有的,是具有开创性的功能。由外挂作者脑洞决定功能种类,技术决定功能强度。
外挂并不是无所不能,而是知识限制了你的想象力。 好好学习,做外挂也是件技术活。