想要通过网络监听游戏的数据请求,以此来获取游戏的一些状态,说白了就是写外挂。
用 Wireshark 抓了 UDP 包,但是数据部分的协议应该不是常见的 http/https 之类的协议。
想问下,下一步的方向是什么?一般游戏数据封包用什么协议?一般会不会有加密?
1
danbai 2023-06-10 14:47:46 +08:00
游戏传输会使用 proto buff 。如果没加密的话你可以试试
|
2
danbai 2023-06-10 14:48:24 +08:00 1
我建议你先从内存入手,一上来就网络抓包看不出什么。
|
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 1
根据我的经验,直接分析封包很难。 我研究过一段时间饥荒游戏,用的是 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 1
玩玩 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
daimiaopeng 2023-06-12 09:43:24 +08:00 1
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
如果不知道协议的结构 应该也没办法吧?
|