
想要通过网络监听游戏的数据请求,以此来获取游戏的一些状态,说白了就是写外挂。
用 Wireshark 抓了 UDP 包,但是数据部分的协议应该不是常见的 http/https 之类的协议。
想问下,下一步的方向是什么?一般游戏数据封包用什么协议?一般会不会有加密?
1 danbai PRO 游戏传输会使用 proto buff 。如果没加密的话你可以试试 |
2 danbai PRO 我建议你先从内存入手,一上来就网络抓包看不出什么。 |
3 justdoit123 OP @danbai 好,谢谢~ 我去往这个方向试试。 |
4 bruce0 2023-06-10 15:22:54 +08:00 现在一般会用 protobuf, 早年 还有一些使用自己开发的编码协议, 我觉得还是和 1 楼上说的 先从内存入手吧, 要不然即使抓到包了也是两眼一抹黑 |
5 HQKM 2023-06-10 16:03:58 +08:00 protobuf 当然加密 |
6 roycestevie6761 2023-06-10 17:37:54 +08:00 根据我的经验,直接分析封包很难。 我研究过一段时间饥荒游戏,用的是 raknet 网络引擎,wireshark 直接自带 raknet 数据包解析。而且这个网络引擎也是开源的。即使这样,我也只能分析出最简单的喊话封包。像海钓 mod 中的钓鱼,一次发五六十个字节的数据,前 14 个是游戏引擎需要的,后面是游戏自定义的,完全不懂什么含义(之前想做自动钓鱼功能,不然一直点鼠标太累了)。而且他这些发包逻辑是用 lua 写的,我不懂 lua 就放弃了,找不到这部分逻辑在客户端的哪里。因此我无法有效构造封包,模拟不了功能。 有兴趣可以一起交流 |
7 roycestevie6761 2023-06-10 17:45:12 +08:00 |
8 seers 2023-06-10 17:53:21 +08:00 玩玩 frida 吧,逆向是最直接的 |
10 lysS 2023-06-10 19:17:17 +08:00 额,肯定加密了的 |
11 justdoit123 OP @roycestevie6761 哈哈。谢谢分享! |
12 justdoit123 OP @seers oh~~~ 这玩意粗看 似乎不错。 |
13 justdoit123 OP 主要现在实在不想学什么新框架、新架构。感觉业务开发的方向实在是很浮躁业务也好、实现业务所用的技术也好。 所以想试着了解一些计算机领域的其它应用,刚好又能驱动自己去重新学习底层技术,同时也有所应用。 想想反正是在玩一游戏,总有一些重复操作的枯燥事情。 之前主要是使用 ocr 来实现 游戏状态判断,但是不太稳定,而且感觉效率低。 |
14 roycestevie6761 2023-06-10 21:30:28 +08:00 @mistkafka 这些东西搞到后面很有意思,难度也越来越大,有兴趣的话搞个十年不是问题哈哈。 |
15 roycestevie6761 2023-06-10 21:34:59 +08:00 ocr 没用的,opencv 还有点 B 用,我以前用 opencv 写过游戏脚本,还不错。 后面识图的话主流游戏也会遇到安全对抗问题,技术一遇到对抗就无止境了 |
16 roycestevie6761 2023-06-10 21:36:42 +08:00 那个脚本是我赚的第一桶金吧,虽然没多少钱,但是也是让我觉得写代码是件有乐趣的事情 |
17 Smallgourd 2023-06-11 01:37:09 +08:00 主要还是涉及内存中的对抗,游戏保护涉及驱动 hook 等等一堆 Windows 底层的东西,单纯的抓包可以看看 WPE |
18 levelworm 2023-06-11 21:53:04 +08:00 via Android @roycestevie6761 逆向的确很有意思,带加密的协议估计很难搞。 |
19 labubu 2023-06-12 09:43:24 +08:00 52 上类似的教程挺多的 |
20 roycestevie6761 2023-06-12 11:42:34 +08:00 @levelworm 是的,也有些人不搞游戏,专门搞抖音快手 telegram 这种 app 协议的,能搞出来的都是高手中的高手 |
21 nyxsonsleep 2023-08-04 21:54:01 +08:00 大概率都是和 app 都一样的,有个加密过程,app 一般是有个签名值,游戏可能整个包都加密了,肯定是 aes ,密钥也在游戏的逻辑里。然后流程就和 app 一样反编译 hook 找密钥就行了。 |
22 vicya 2023-10-13 09:37:21 +08:00 如果不知道协议的结构 应该也没办法吧? |