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

329 天前
 justdoit123

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

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

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

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

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

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

之前主要是使用 ocr 来实现 游戏状态判断,但是不太稳定,而且感觉效率低。
roycestevie6761
329 天前
@mistkafka 这些东西搞到后面很有意思,难度也越来越大,有兴趣的话搞个十年不是问题哈哈。
roycestevie6761
329 天前
ocr 没用的,opencv 还有点 B 用,我以前用 opencv 写过游戏脚本,还不错。
后面识图的话主流游戏也会遇到安全对抗问题,技术一遇到对抗就无止境了
roycestevie6761
329 天前
那个脚本是我赚的第一桶金吧,虽然没多少钱,但是也是让我觉得写代码是件有乐趣的事情
Smallgourd
329 天前
主要还是涉及内存中的对抗,游戏保护涉及驱动 hook 等等一堆 Windows 底层的东西,单纯的抓包可以看看 WPE
levelworm
328 天前
@roycestevie6761 逆向的确很有意思,带加密的协议估计很难搞。
daimiaopeng
327 天前
52 上类似的教程挺多的
roycestevie6761
327 天前
@levelworm 是的,也有些人不搞游戏,专门搞抖音快手 telegram 这种 app 协议的,能搞出来的都是高手中的高手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947529

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX