逃离塔科夫-游戏网络数据包分析
沉迷塔科夫,发现了一个基于网络流量分析的雷达外挂。
原理是它能够解密塔科夫的UDP游戏数据包,解析出有用的数据,比如其他玩家移动,玩家ID,游戏物品及其位置。
WireShark抓包获取UDP流量样本 EFT_2020-3-17_Wireshark_packet
原始数据如下
红色的为客户端,蓝色的是服务器数据包。可以观察到数据包都以000开头,且多个零结尾,推测不可能为如TLS,AES等的强加密。ASCII,UTF8等都不是,尝试发现可以YAML解密。
发现有把每一个包号都标注,同时仍有一些无法解密的数据,这些数据也有很强的逻辑关系,比如都以AA开头,中间有//////,同时以AAA=结尾。
推测可能为未知的加密方式或是游戏自建的内容传输机制。
采集一些经常出现了的样本,比较分析
服务器发送过来的数据包中有大量这个格式的数据包,推测这应该就是我们想要的其他玩家移动的数据包。将不变的固定的位置圈出来。
固定值有
AAn
PXE
//////////////////
FRUw
OAKoADABS
CoQA
AAAAA=
变动的值中有规律的有
l-k
L-r-7-b
r-s-t-u-v-w-x
D-j
A-B-C….-Z
w-4-A-I-Y-Q
Q-I
g-w-Q-A
变动区块中按顺序分析
3-2-1-3-1-1-3
第一块3个字符中,我们可以发现3处规律。
k-l 实际上是不停增大的所有字符合集,增大较慢
+-/-A-B-C-D-E-F 实际上是不停增大的所有字符合集,增大较快
L-r-7-b 四个不同的变量
我们稍作考虑,就可以发现,实际上AA是开头符号,然后后面的四位是逐渐增大的数字。
例子中的nk+ —> nlF 实际上是逐渐增大的数据,而后的Lr7b我认为可以理解为4个方向,也许是xy坐标体系中的上下左右。也许是xyz坐标系的某个值???
而之后的PXE+r到x我认为可以和之前的理解为也是一样的逐渐增大的数据,只不过增长的特别慢,没有进位。而且增长速度特别统一,也许是游戏时间???
之后的D和j可以理解为一个是或否的数据,具体怎么理解没想通。
在后面的UwG —> UwL后面也跟了Lr7b,和之前的特别像,也许也是代表坐标。
向后一位的EIMQ是单单一位增大特别快的字符合集。
0AKoAD在其他数据包中也经常见到,也许有特殊的含义。
之后跟了一个w-4-A-I-Y-Q,我认为这应该就是代表了三维坐标系中的上下左右前后。
之后则是CoQA被两个是否变量夹在中间。
然后就是一个逐渐增大的符号集合,后面跟着一个gwQA四变量。
具体这一类数据包什么作用,怎么分析,还需要控制一些变量抓更多的包来看,今天暂时到这。