• [游戏分析] 游戏逆向


    游戏外挂的种类

    模拟键盘、鼠标(一般使用 SendInput)
    这种常见的就是采用按键精灵,对于一些任务系统,或者采集系统,通过按键精灵来录入操作,模拟人手操作,加快收集过程,对于这种的就需要服务器进行分析了,不过影响不是很大,根据影响效果来看是否处理

    修改数据包,破解协议
    协议破解是一种常见的方式,主要是针对通信内容进行破解,对于采用hash加密的协议来说,会被彩虹表暴力破解。对于采用对称加密的算法来说,如果密钥被截获或者从文件破解,都会触发这种解密行为。若是采用非对称加密,对服务器的性能损耗太严重了,不值得,所以好的方式还自定义一种动态密钥,加大被破解的难度。

    数据包重发、篡改
    对于有些协议加密比较严谨的项目,协议数据破解会很难,作弊者破解不了,就重发或者篡改向服务器发的包,比如充值包,或者购买道具包,他们会采用WPE工具截取到发送的包之后,再次重发,如果服务器没有做好唯一认证或者逻辑严格检查,就会被这种重发包给攻击,造成大量道具的产出。 发放技能这种包也可以被重发,这样可以无限放技能。

    加速
    加快游戏的时间或者帧率,让人物快速移动、快进技能CD等,或者遇到一些操作比较难的关卡,减慢游戏节奏,减低操作难度,从而影响游戏的帧率,加速过关,减速躲避技能等。
    对于这种行为,一般是客户端和服务器做好心跳检测,检查客户端时间,防止篡改,另一方面做好客户端输入数据检查,做到验证数据以服务为准。

    修改本地内存(改数据、拦截 api)
    修改内存数据,这个在以战斗逻辑主要客户端计算的游戏中,经常会出现。这类外挂通过分析游戏所使用的内存,找到内存中的变量去分析猜测变量是代表的什么含义。然后再去修改这个值,令玩家控制的角色战斗力爆棚,比如技能CD直接修改为0,或者攻击值修改变大等。这个一方面客户端要对内存数据做好加密,另一方面服务器得做好验证,不能以客户端为准,具体形式后面再讲。


    思路参考 (长期更新)

    射击类

    FPS类游戏面临的两大外挂问题:透视和自瞄。这也是多数FPS游戏所遇到的问题,比如守望先锋和穿越火线等。

    透视分为方框透视和人物透视,具体的方框透视,我没有仔细研究过,大概也是通过坐标系来定位的,而坐标系的数据也是通过内存数据读取出来的,所以说若是内存数据没有保护好,这个也是会被搞的。而人物透视就是采用劫持系统渲染的逻辑来实现的,简单粗暴。

    自瞄是方框透视的附带功能,但是比方框透视更难以检测。因为自瞄从原理上来说仅仅是模拟了鼠标的移动,并没有实际对游戏进行干涉。所以这种方式想要验证,只能通过服务器来分析是否是输入设备的操作来处理了,相对比较困难。

    FPS游戏:实现D3D劫持透视 (API Hook)

    FPS游戏:实现GDI方框透视 (三角函数)

    SystemCheats外挂分析报告

    【CSGO】AliveNK外挂分析

  • 相关阅读:
    python 利用爬虫获取页面上下拉框里的所有国家
    python3 requests 进行接口测试、爬虫使用总结
    Tomcat设置最佳线程数总结
    Java中实现对象的比较:Comparable接口和Comparator接口
    堆排序算法
    快速排序算法2---以第一个元素作为主元
    字符串匹配---暴力匹配算法
    快速排序算法
    Spring中@Autowired注解与自动装配
    Spring的注解
  • 原文地址:https://www.cnblogs.com/csnd/p/15613360.html
Copyright © 2020-2023  润新知