V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuzhibott
V2EX  ›  分享发现

fps 游戏中外挂和反挂用到的技术是什么

  •  1
     
  •   yuzhibott · 2018-03-24 17:54:24 +08:00 · 8355 次点击
    这是一个创建于 2437 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2018-03-25 15:18:47 +08:00
    dobelee
        1
    dobelee  
       2018-03-24 18:00:42 +08:00 via Android   ❤️ 4
    外挂主要有三种
    1.操作辅助型,如按键精灵
    2.客户端篡改型,如非官方客户端
    3.通讯篡改型,如抓取报文
    反第三种最简单,加密通讯报文。
    反第一种和第二种比较困难。
    MeteorCat
        2
    MeteorCat  
       2018-03-24 18:20:09 +08:00 via Android
    在线 fps 游戏是最特殊的游戏,很多计算要求高速和高实时,所以很多都是直接使用 p2p 客户端运算,服务端对游戏帧数据采集做“玩家数据预测”来,多人 fps 是目前游戏服务端处理最麻烦和棘手的事,哪怕大厂对这种问题也无法百分之百防范

    参考资料: https://blog.csdn.net/silangquan/article/details/51512400
    est
        3
    est  
       2018-03-24 19:49:22 +08:00
    外挂技术一般都是 aimbot,锁血、穿墙、瞬移、秒杀。

    反外挂其实现在很不成熟,VAC 也就是判断客户端环境而已。游戏中并不会主动去探测。
    mokeyjay
        4
    mokeyjay  
       2018-03-24 20:04:53 +08:00
    受制于网络延迟,FPS 游戏各种判定都是在客户端做的,所以目前反外挂很困难
    至于技术,无非就是突破驱动保护注入游戏篡改数据,反外挂就是检测有没有程序突破驱动保护篡改数据
    qsnow6
        5
    qsnow6  
       2018-03-24 21:43:22 +08:00
    1. 为了向性能妥协,大部分的验证都是在客户端校验的。服务端为了最快响应游戏数据,很少做反外挂处理。
    2. 但是并不是完全不处理,据我所了解的,都是事后算账,定期清理一批数据异常的玩家,提升作恶成本,达到杀鸡儆猴足已。
    qu3290052
        6
    qu3290052  
       2018-03-24 21:50:02 +08:00 via Android
    现在更多的外挂是 hook
    winterbells
        7
    winterbells  
       2018-03-24 22:33:17 +08:00 via Android
    之前看过 GTA5 的外挂科普,因为性能和网络原因,不可能每个玩家都直接连服务器,所以每个战局会指定一个玩家作为主机,把数据汇总后传给 R*。所以外挂就是利用这个来控制战局内所有数据。想干嘛干嘛,还可以伪装成别的玩家,这样举报也不会被查。。
    just1
        8
    just1  
       2018-03-24 22:34:54 +08:00 via Android
    有大佬能顺便解释下比如腾讯是怎么防外挂的呢
    qqdaiyu55
        9
    qqdaiyu55  
       2018-03-24 22:44:43 +08:00 via Android
    反外挂主要包括游戏客户端检测防护与写策略(检测外挂行为导致行为数据),还有不成熟的机器学习分类,以及主播举报。
    wafm
        10
    wafm  
       2018-03-24 22:57:12 +08:00   ❤️ 6
    @just1 最直接有效的都还是南山区人民法院
    pisser
        11
    pisser  
       2018-03-25 02:24:33 +08:00   ❤️ 1
    大学期间写过 bf2 外挂现在都没怎么碰了,简单可以说几句,初中高中数学(几何),要会看 asm,debug 内存,C/C++/JAVA 等等,深入了解操作系统环境编程以及各种 trick,所以说这问题问得很初级,别指望有什么收获。
    zj299792458
        12
    zj299792458  
       2018-03-25 03:45:36 +08:00 via iPhone   ❤️ 1
    屏幕中间贴准星算外挂不
    Telegram
        13
    Telegram  
       2018-03-25 07:01:16 +08:00 via iPhone
    最终还是行政手段,把外挂制作者抓起来。
    pkookp8
        14
    pkookp8  
       2018-03-25 10:26:15 +08:00 via Android
    @zj299792458 十年前打 cs 靠的就是这手盲狙
    app13
        15
    app13  
       2018-03-25 11:29:25 +08:00 via Android
    @zj299792458 我的显示器自带屏幕中间显示准星的功能,这就算硬件挂了吧😁
    finab
        16
    finab  
       2018-03-25 13:14:23 +08:00 via iPhone
    @app13 这算次元挂,外挂代码运行在另一个次元。现有技术无解
    xenme
        17
    xenme  
       2018-03-25 14:04:34 +08:00 via iPhone
    fps 这种我觉得最基本的透视基本无法防止
    m939594960
        18
    m939594960  
       2018-03-25 15:18:47 +08:00   ❤️ 4
    @just1 腾讯怎么反外挂.
    我说下我了解的
    1.
    腾讯的 TP 一般就是通过驱动 HOOK 掉一些系统公开 /没公开的 API
    例如读写内存的 API 通过驱动 hook 到自己程序中,对指定进程的内存读写进行 屏蔽 /记录
    比如 DEBUG 程序用到的一些关键性 API 通过驱动 hook 然后全局 anti-debug (不能调试任何程序,包括 DNF,JAVA,C++),导致用户无法 DEBUG 也就无法恢复这些 HOOK

    hook 之后在通过一些黑科技防止用户恢复 hook,例如把一些参数通过奇怪的方式传到 API 中, 如果你没传 /传错了, 就会导致用户蓝屏

    防止你加载各种驱动进入 R0 级别.


    由于这种 hook 导致新更新大的系统版本的时候 TP 总是会导致蓝屏, 这也是没办法的,因为 hook 的很多 API 都不是微软提供开放使用的 API,所以版本更新调整一下 API 的参数 结构什么的, TP 一 HOOK 就蓝屏也是很正常的




    2.然后用心跳包之类的跟腾讯服务器进行沟通,发现 TP 被剥离游戏游戏立刻掉线

    3.对主流的一些外挂进行特征码的记录, 可以不更新游戏进行对指定品牌的外挂进行封锁 . 但是外挂想绕过还是挺简单的,所以现在这外挂每天更新 防止腾讯记录特征码

    4.对一些不知名的 DLL 程序进行上传服务器鉴定,如果发现有问题,所有账号进行追封..

    5.对虚拟机,IP 等检测 如果有问题 增加对检测的力度(主要针对工作室)

    6.一般的动态 CRC,静态 CRC,CALL 检测,关键点 VM

    7.其他一切未知的检测,不会让你知道你被没被检测,也许 腾讯一直知道你在用挂,只不过现在还不想鸟你 ,只会在某个日子偷偷追封掉你的账号(最令人恶心的一个地方)

    8.工作室行为检测 针对用户 QQ 号游戏行为等等各种 进行判断是否工作室 (估计内部是有账号评分系统, 分到某个阀值就触发封号机制.)


    当然这一切的一切都是我猜的. 反正我现在觉得腾讯是反挂方面最屌的了吧.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5385 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 05:45 · PVG 13:45 · LAX 21:45 · JFK 00:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.