Escape from Tarkov 逃离塔科夫 全局数据Dump转储工具+源码

使用方法

在游戏启动时注入(必须在 GameAssembly.dll 加载前完成注入)

转储工具会自动运行,元数据文件将生成在游戏目录中

如果未找到特征码 → 重新尝试

如果卡在 meta function hooked → 注入时机过晚

技术细节

本工具主要通过逆向 init metadata cache 方法实现,部分未解明逻辑

建议:若想为其他游戏实现类似功能,强烈推荐用同版本 Unity 空项目加载 IDA 并对比 PDB 符号,效率极高。

《逃离塔科夫》的元数据加密机制

通过网络请求获取密钥解密元数据

头部信息全程加密(无法直接从内存读取,需解密或调用函数)

移除了校验字段和版本号

对 il2cpptypedefinition 结构体字段进行乱序处理

使用多组密钥(部分来自加密文件、网络请求和游戏本体)

实现流程

等待 GameAssembly.dll 加载

挂钩密钥获取函数(在类型定义结构体解乱序前快速截获密钥)

保存密钥后解除挂钩

等待游戏完成元数据解密

复制元数据头部

调用解密函数处理所有头部

修复字段顺序

手动填充校验字段和版本号

根据头部计算元数据总大小并复制到缓冲区

用先前获取的密钥解乱序类型定义结构体

将 nestedTypesSize 减 5(末尾存在无效数据,直接处理会报错)

特征码定位

s_GlobalMetadataHeader

解密后的元数据头部常量,IDA 中搜索 global-metadata.dat 引用

metadata_key

用于解密头部的密钥常量,IDA 中定位从 s_GlobalMetadataHeader 复制数据后的赋值操作

get_meta_header_decrypted_value

输入头部值和密钥返回解密结果的函数,定位方式同上

get_meta_version_and_key

在元数据端点请求前后调用,提供游戏版本和密钥(用于生成网络请求密钥及乱序字段)。

注意:此函数若延迟调用会引发问题,故选择挂钩拦截。IDA 中可在加密元数据加载后定位仅接收 2 个指针参数的函数。

转载请说明出处 内容投诉
12GAME » Escape from Tarkov 逃离塔科夫 全局数据Dump转储工具+源码

发表评论

您需要后才能发表评论

一个令你着迷的网站!

开通会员 官方交流群