• [游戏分析] 游戏逆向


    游戏外挂的种类

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

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

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

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

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


    思路参考 (长期更新)

    射击类

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

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

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

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

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

    SystemCheats外挂分析报告

    【CSGO】AliveNK外挂分析

  • 相关阅读:
    37. Sudoku Solver(js)
    36. Valid Sudoku(js)
    35. Search Insert Position(js)
    34. Find First and Last Position of Element in Sorted Array(js)
    33. Search in Rotated Sorted Array(js)
    32. Longest Valid Parentheses(js)
    函数的柯里化
    俞敏洪:我和马云就差了8个字
    vue路由传值params和query的区别
    简述vuex的数据传递流程
  • 原文地址:https://www.cnblogs.com/csnd/p/15613360.html
Copyright © 2020-2023  润新知