Game Engines
Unreal Engine
MyCryENGINE
justdoit123

如何解析游戏的 UDP 数据包?

  •  
  •   justdoit123 · Jun 10, 2023 · 5062 views
    This topic created in 1092 days ago, the information mentioned may be changed or developed.

    想要通过网络监听游戏的数据请求,以此来获取游戏的一些状态,说白了就是写外挂。

    用 Wireshark 抓了 UDP 包,但是数据部分的协议应该不是常见的 http/https 之类的协议。

    想问下,下一步的方向是什么?一般游戏数据封包用什么协议?一般会不会有加密?

    22 replies    2023-10-13 09:37:21 +08:00
    danbai
        1
    danbai  
    PRO
       Jun 10, 2023
    游戏传输会使用 proto buff 。如果没加密的话你可以试试
    danbai
        2
    danbai  
    PRO
       Jun 10, 2023   ❤️ 1
    我建议你先从内存入手,一上来就网络抓包看不出什么。
    justdoit123
        3
    justdoit123  
    OP
       Jun 10, 2023
    @danbai 好,谢谢~ 我去往这个方向试试。
    bruce0
        4
    bruce0  
       Jun 10, 2023
    现在一般会用 protobuf, 早年 还有一些使用自己开发的编码协议, 我觉得还是和 1 楼上说的 先从内存入手吧, 要不然即使抓到包了也是两眼一抹黑
    HQKM
        5
    HQKM  
       Jun 10, 2023
    protobuf 当然加密
    roycestevie6761
        6
    roycestevie6761  
       Jun 10, 2023   ❤️ 1
    根据我的经验,直接分析封包很难。 我研究过一段时间饥荒游戏,用的是 raknet 网络引擎,wireshark 直接自带 raknet 数据包解析。而且这个网络引擎也是开源的。即使这样,我也只能分析出最简单的喊话封包。像海钓 mod 中的钓鱼,一次发五六十个字节的数据,前 14 个是游戏引擎需要的,后面是游戏自定义的,完全不懂什么含义(之前想做自动钓鱼功能,不然一直点鼠标太累了)。而且他这些发包逻辑是用 lua 写的,我不懂 lua 就放弃了,找不到这部分逻辑在客户端的哪里。因此我无法有效构造封包,模拟不了功能。

    有兴趣可以一起交流
    roycestevie6761
        7
    roycestevie6761  
       Jun 10, 2023
    seers
        8
    seers  
       Jun 10, 2023   ❤️ 1
    玩玩 frida 吧,逆向是最直接的
    etmad
        9
    etmad  
       Jun 10, 2023
    @danbai 有没有相关教程,最近搞 CE,一附加游戏就关了
    lysS
        10
    lysS  
       Jun 10, 2023
    额,肯定加密了的
    justdoit123
        11
    justdoit123  
    OP
       Jun 10, 2023
    @roycestevie6761 哈哈。谢谢分享!
    justdoit123
        12
    justdoit123  
    OP
       Jun 10, 2023
    @seers oh~~~ 这玩意粗看 似乎不错。
    justdoit123
        13
    justdoit123  
    OP
       Jun 10, 2023
    主要现在实在不想学什么新框架、新架构。感觉业务开发的方向实在是很浮躁——业务也好、实现业务所用的技术也好。 所以想试着了解一些计算机领域的其它应用,刚好又能驱动自己去重新学习底层技术,同时也有所应用。

    想想反正是在玩一游戏,总有一些重复操作的枯燥事情。

    之前主要是使用 ocr 来实现 游戏状态判断,但是不太稳定,而且感觉效率低。
    roycestevie6761
        14
    roycestevie6761  
       Jun 10, 2023
    @mistkafka 这些东西搞到后面很有意思,难度也越来越大,有兴趣的话搞个十年不是问题哈哈。
    roycestevie6761
        15
    roycestevie6761  
       Jun 10, 2023
    ocr 没用的,opencv 还有点 B 用,我以前用 opencv 写过游戏脚本,还不错。
    后面识图的话主流游戏也会遇到安全对抗问题,技术一遇到对抗就无止境了
    roycestevie6761
        16
    roycestevie6761  
       Jun 10, 2023
    那个脚本是我赚的第一桶金吧,虽然没多少钱,但是也是让我觉得写代码是件有乐趣的事情
    Smallgourd
        17
    Smallgourd  
       Jun 11, 2023
    主要还是涉及内存中的对抗,游戏保护涉及驱动 hook 等等一堆 Windows 底层的东西,单纯的抓包可以看看 WPE
    levelworm
        18
    levelworm  
       Jun 11, 2023 via Android
    @roycestevie6761 逆向的确很有意思,带加密的协议估计很难搞。
    labubu
        19
    labubu  
       Jun 12, 2023   ❤️ 1
    52 上类似的教程挺多的
    roycestevie6761
        20
    roycestevie6761  
       Jun 12, 2023
    @levelworm 是的,也有些人不搞游戏,专门搞抖音快手 telegram 这种 app 协议的,能搞出来的都是高手中的高手
    nyxsonsleep
        21
    nyxsonsleep  
       Aug 4, 2023
    大概率都是和 app 都一样的,有个加密过程,app 一般是有个签名值,游戏可能整个包都加密了,肯定是 aes ,密钥也在游戏的逻辑里。然后流程就和 app 一样反编译 hook 找密钥就行了。
    vicya
        22
    vicya  
       Oct 13, 2023
    如果不知道协议的结构 应该也没办法吧?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1174 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 23:58 · PVG 07:58 · LAX 16:58 · JFK 19:58
    ♥ Do have faith in what you're doing.