深度解析逆向工程:XGP存档提取与跨平台数据迁移的完整实战指南
深度解析逆向工程XGP存档提取与跨平台数据迁移的完整实战指南【免费下载链接】XGP-save-extractorPython script to extract savefiles out of Xbox Game Pass for PC games项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractorXGP存档提取器是一个专门用于破解微软Xbox Game Pass PC版游戏加密存档格式的开源工具通过逆向工程实现与Steam、Epic等平台的游戏进度数据无缝迁移。该项目解决了游戏存档跨平台迁移的核心技术难题为游戏玩家和技术开发者提供了宝贵的逆向工程实践案例。项目概述与技术价值XGP存档提取器的核心价值在于打破平台壁垒让玩家能够自由迁移游戏进度。微软的Windows Gaming Savewgs系统采用多层加密保护用户数据每个XGP游戏都有独特的包名标识符存档文件存储在复杂的容器化架构中。这个项目通过逆向工程解析wgs容器格式将原本封闭的游戏进度数据转换为跨平台兼容的通用格式。技术挑战与解决方案技术挑战解决方案实现效果wgs容器加密格式二进制结构解析算法准确提取存档元数据多游戏格式差异处理器模式架构设计支持60款游戏用户身份验证Xbox账户关联机制确保数据安全性云同步干扰同步检测机制避免提取损坏文件核心技术原理解析wgs容器格式逆向工程项目通过分析wgs容器的二进制格式实现了三种主要存储模式的解析1c1f模式单一容器存储单个文件容器名称即为文件名1cnf模式单一容器存储多个文件适用于复杂存档结构1cnf-folder模式每个容器代表一个文件夹包含多个文件核心解析函数read_container通过二进制结构解析获取存档元数据def read_container(container_dir: Path) - Dict[str, Any]: container_file container_dir / container.0 with container_file.open(rb) as f: # 解析文件数量、创建时间等元数据 file_count struct.unpack(i, f.read(4))[0] creation_time read_filetime(f) # 读取文件条目信息多处理器架构设计项目采用灵活的处理器模式架构为不同类型的游戏提供专门的提取逻辑def get_save_paths(supported_games, store_pkg_name, containers, temp_dir): handler_name supported_games[store_pkg_name][handler] if handler_name 1c1f: # 处理1容器1文件模式 for container in containers: fname container[name] fpath container[files][0][path] save_meta.append((fname, fpath)) elif handler_name control: # 处理Control游戏的特殊格式 for container in containers: path PurePath(container[name]) # 创建容器显示名称文件 temp_container_disp_name_path Path(temp_dir.name) / f{container[name]}_--containerDisplayName.chunk配置文件驱动的游戏支持games.json配置文件定义了每个游戏的处理规则{ name: Starfield, package: BethesdaSoftworks.ProjectGold_3275kfvn8vcwc, handler: starfield }实战应用场景游戏存档迁移流程检测已安装游戏扫描%LOCALAPPDATA%\Packages\目录查找支持的XGP游戏解析wgs容器读取SystemAppData/wgs目录下的存档容器提取存档文件根据游戏配置使用相应的处理器提取文件生成ZIP包将提取的文件打包为跨平台兼容的存档包支持的游戏类型统计游戏类型数量代表游戏处理模式动作冒险15Atomic Heart, Hi-Fi RUSH1c1f角色扮演10Starfield, Persona 5特殊处理器模拟经营8Coral Island, Manor Lords1c1f体育竞技5Forza Horizon 5, Cricket 24特殊处理器特殊游戏处理示例《星空》Starfield存档处理elif handler_name starfield: # Starfield将SFS文件拆分为多个部分 # 需要重新组装BETHESDAPFH头和PnP文件 for container in containers: if path.parent.name ! Saves: continue # 重新组装SFS文件 with sfs_path.open(wb) as sfs_f: for idx, part_path in sorted(parts.items()): with open(part_path, rb) as part_f: data part_f.read() size sfs_f.write(data) pad 16 - (size % 16) if pad ! 16: sfs_f.write(pad_str[:pad].encode(ascii))扩展开发指南为《龙珠超宇宙2》添加支持要为《龙珠超宇宙2》添加XGP存档支持开发者需要遵循以下步骤确定游戏包名# 查找游戏包名 %LOCALAPPDATA%\Packages\NAMCOBANDAIGamesInc.DBXV2BaseGame_*分析存档结构检查wgs目录下的容器结构确定采用哪种存储模式分析文件命名规则配置games.json{ name: Dragon Ball Xenoverse 2, package: NAMCOBANDAIGamesInc.DBXV2BaseGame_gdy2aq6ez762w, handler: 1cnf-folder, handler_args: { suffix: .sav } }实现特殊处理器如需要elif handler_name dbxv2: # 龙珠超宇宙2特殊处理逻辑 for container in containers: # 处理存档文件和图标文件 if icon in container[name]: # 处理图标文件 pass else: # 处理存档文件 pass常见问题排查问题现象可能原因解决方案提取失败云同步进行中等待同步完成文件损坏容器格式变化更新处理器逻辑找不到存档游戏未安装确认游戏安装状态权限错误系统权限限制以管理员身份运行技术实现细节二进制数据解析项目使用Python的struct模块解析wgs容器的二进制格式def read_utf16_str(f, str_lenNone) - str: if not str_len: str_len struct.unpack(i, f.read(4))[0] return f.read(str_len * 2).decode(utf-16).rstrip(\0) def read_filetime(f) - datetime: filetime struct.unpack(Q, f.read(8))[0] filetime_seconds filetime / 10_000_000 return filetime_epoch timedelta(secondsfiletime_seconds)用户身份验证机制通过读取Xbox应用的配置文件验证用户身份def get_xbox_user_name(user_id: int) - str | None: xbox_app_package Microsoft.XboxApp_8wekyb3d8bbwe try: live_gamer_path packages_root / xbox_app_package / LocalState/XboxLiveGamer.xml with live_gamer_path.open(r, encodingutf-8) as f: gamer json.load(f) known_user_id gamer.get(XboxUserId) if known_user_id ! user_id: return None return gamer.get(Gamertag) except: return None容器索引解析解析containers.index文件获取容器信息def read_user_containers(user_wgs_dir: Path) - Tuple[str, List[Dict[str, Any]]]: containers_idx_path containers_dir / containers.index with containers_idx_path.open(rb) as f: f.read(4) # Unknown container_count struct.unpack(i, f.read(4))[0] pkg_display_name read_utf16_str(f) store_pkg_name read_utf16_str(f).split(!)[0] creation_date read_filetime(f)未来技术展望自动化分析工具开发未来的发展方向包括开发自动化分析工具能够自动识别游戏包名和存档结构生成初始配置文件模板验证提取结果的正确性提供图形化用户界面平台支持扩展当前项目主要支持XGP到Steam/Epic的迁移未来可扩展至GOG平台存档格式兼容不同游戏版本间的转换存档编辑和修改功能云存档同步集成社区贡献机制优化通过标准化贡献流程和自动化测试降低新游戏支持的开发门槛提供配置生成器工具建立游戏兼容性数据库实现CI/CD自动化测试开发调试和分析工具技术架构改进插件化架构将游戏处理器设计为插件便于扩展性能优化支持批量处理和并行提取错误恢复机制增强容错能力和错误报告多语言支持提供国际化界面和文档最佳实践与注意事项开发最佳实践逆向工程安全遵循合法逆向工程原则仅用于个人数据迁移代码可维护性保持处理器逻辑清晰添加详细注释测试覆盖为每个游戏处理器编写单元测试文档完整性提供完整的配置说明和使用指南使用注意事项备份原始存档提取前务必备份原始wgs目录关闭云同步提取时暂停Xbox云同步功能版本匹配确保源和目标游戏版本一致逐步测试先测试单个存档再批量处理结语XGP存档提取器项目展示了开源社区在解决实际问题中的强大力量。通过逆向工程和集体智慧开发者们成功破解了微软的封闭存档系统为玩家提供了宝贵的跨平台数据迁移能力。这个项目不仅解决了具体的技术问题更为游戏存档管理领域树立了技术标准。对于技术开发者而言这个项目提供了逆向工程、二进制解析和跨平台兼容性处理的宝贵实践案例。通过克隆项目仓库开发者可以深入了解实现细节参与社区贡献共同推进游戏存档技术的进步。随着更多游戏的加入和功能的完善XGP存档提取器将继续推动游戏数据可移植性的发展让玩家真正拥有自己的游戏进度数据实现真正的游戏数据自主权。【免费下载链接】XGP-save-extractorPython script to extract savefiles out of Xbox Game Pass for PC games项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

为团队开发环境统一配置TaotokenCLI工具提升协作效率

为团队开发环境统一配置TaotokenCLI工具提升协作效率

为团队开发环境统一配置TaotokenCLI工具提升协作效率 在团队协作开发中,确保每位成员使用统一、标准的大模型调用环境至关重要。不同的本地配置、API端点或模型选择,不仅可能导致代码行为不一致,还会给问题排查和成本管理带来额外负担。对于…

2026/10/10 16:36:04 阅读更多 →
GTNH中文汉化终极指南:5分钟让格雷科技新视野变中文

GTNH中文汉化终极指南:5分钟让格雷科技新视野变中文

GTNH中文汉化终极指南:5分钟让格雷科技新视野变中文 【免费下载链接】Translation-of-GTNH GTNH整合包的汉化 项目地址: https://gitcode.com/gh_mirrors/tr/Translation-of-GTNH 还在为格雷科技:新视野(GTNH)这个硬核整合…

2026/9/12 6:01:56 阅读更多 →
行业内支持定制的DDR内存颗粒测试治具企业销量远超第二名

行业内支持定制的DDR内存颗粒测试治具企业销量远超第二名

在电子测试治具领域,支持定制的DDR内存颗粒测试治具市场竞争异常激烈。令人瞩目的是,深圳市谷易电子有限公司在这一细分市场中脱颖而出,销量远超第二名。下面我们就来深入剖析谷易电子取得如此佳绩的原因。一、精准定位,直击行业痛…

2026/10/3 6:07:22 阅读更多 →

最新新闻

苍蝇检测数据集:VOC+YOLO双格式530张,导入即可训练

苍蝇检测数据集:VOC+YOLO双格式530张,导入即可训练

简介:一套面向目标检测任务的苍蝇检测数据集,主要服务于计算机视觉方向的初学者、算法工程师以及农业害虫识别等实际项目。全部图像来自百度图片爬取,并经过删除重复筛选,再由labelImg工具人工绘制矩形框完成标注,标注…

2026/10/11 0:32:54 阅读更多 →
毕业设计水果识别实战:从数据采集到微信小程序部署

毕业设计水果识别实战:从数据采集到微信小程序部署

简介:本资源是一套完整的基于深度学习的水果识别系统毕业设计项目,面向计算机、人工智能及相关专业本科生,专为大作业与毕业设计实践打造,解决图像分类场景下的模型构建、训练与部署全流程问题。压缩包共277个文件,总大…

2026/10/11 0:32:54 阅读更多 →
DeepLabv3+实战:VOC与Cityscapes上完整训练与推理指南

DeepLabv3+实战:VOC与Cityscapes上完整训练与推理指南

简介:一套基于Pytorch在VOC与Cityscapes数据集上实现DeepLabv3训练的图像分割实战项目,面向有初步深度学习基础的读者,帮助系统掌握语义分割模型训练的整体流程。包内共55个文件,以23个Python脚本为主干,覆盖数据加载、…

2026/10/11 0:32:54 阅读更多 →
基于NeRF和手机拍摄物体图片的三维重建Python源码+数据集+文档说明

基于NeRF和手机拍摄物体图片的三维重建Python源码+数据集+文档说明

简介:这份资源面向计算机视觉与三维重建方向的学习者,尤其是需要完成课程设计或毕业设计的高年级本科生与研究生,提供一套基于NeRF、利用手机拍摄物体图片即可完成三维重建的完整Python实现方案。压缩包共31个文件,约5.37MB&#…

2026/10/11 0:32:54 阅读更多 →
太阳能电池板YOLO高变焦检测:24577张数据集训练实战

太阳能电池板YOLO高变焦检测:24577张数据集训练实战

简介:面向太阳能光伏板检测与YOLO模型训练的实际需求,这份压缩包针对高变焦太阳能电池板图像场景,提供了带有标签的光伏板检测标注数据集,能帮助开发者和研究人员快速获得规范标注样本,降低从图像采集、清洗到标注的重…

2026/10/11 0:31:53 阅读更多 →
GANMaster人脸矫正实战:从模糊脸到公安标准证件照

GANMaster人脸矫正实战:从模糊脸到公安标准证件照

简介:本资源是一份面向深度学习初学者与计算机视觉实践者的GAN人脸生成与矫正实战教程,聚焦生成对抗网络原理落地与Python代码实现。资源包含4个核心文件(2个Python脚本、1份Markdown说明文档、1份LICENSE),总大小仅9K…

2026/10/11 0:31:53 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →