koloboc74/v8unpack

GitHub: koloboc74/v8unpack

一款将1C:Предприятие 8.x二进制配置文件解包为JSON和独立代码文件的工具,使1C开发能够纳入标准版本控制系统并支持自动化构建。

Stars: 0 | Forks: 0

# saby v8unpack [![img lib ver](https://img.shields.io/pypi/v/v8unpack.svg "")](https://pypi.python.org/pypi/v8unpack) [![img python ver](https://img.shields.io/pypi/pyversions/v8unpack.svg "")](https://pypi.python.org/pypi/v8unpack) [![img license](https://img.shields.io/pypi/l/v8unpack.svg "")](https://pypi.python.org/pypi/v8unpack) [![img coverage](https://img.shields.io/coveralls/saby/v8unpack.svg "")](https://coveralls.io/github/saby/v8unpack) **v8unpack** - 一款用于打包和解包二进制文件的命令行工具 1С:Предприятие 8.х (cf, cfe, epf),无需使用技术平台。 到了某个阶段,在源码级别缺乏版本控制系统变得让人完全无法忍受,在审视了所有 方案后最终选择了 v8unpack。然而,如果不解决其主要缺点,使用它将会极其 不便(扁平化的不可读文件列表,隐藏在某个深处的托管窗体程序代码)。 首先声明,我们对 v8unpack 作者的劳动成果深表敬意,该工具完美地实现了 所有的功能,如果没有它,创建这个解决方案将是不可能的。此外,来自 [Infactum](https://github.com/Infactum/onec_dtools) 的 Python 实现版本 在未经任何修改的情况下被作为了基础。 ## 与同类工具的关键区别: * 存储结构最大程度地贴近元数据结构,文件名具有人类可读性 * 程序代码始终保存在单独的文件中,并且可以拆分为多个文件 * 不同解决方案共用的元数据对象可以自动从子模块中获取 * 布局和图片的二进制数据以原始格式保存 * 为 8.2 和 8.1 构建时,会自动注释掉 8.3 的指令 * 文件以 json 格式保存 * 可以清晰看到窗体元素的改动 ## 本工具的主要用途是: 1. 自动构建 1С 应用程序(配置扩展、外部处理) 针对不同的平台和配置,使用同一套源码 2. 在版本控制系统中方便且易读地存储源码。 ## 工作流程 该工具分 4 个阶段对 1С 二进制文件进行解包和打包: 1. 使用标准的 v8unpack 进行解包 – 输出文本文件 2. 转换为 json 3. 解码头部并按元数据类型进行拆分 4. 组织代码和存储结构 * 将代码区域和窗体面板提取到单独的文件中 * 从多个文件构建代码和窗体 * 将元数据对象、窗体面板、文件或代码区域按子模块进行划分 * 在不使用区域的情况下按版本对扩展代码进行版本控制 ![工作流程](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/895e3e4d20142524.png) ## 安装说明 ``` pip install v8unpack ``` 或者 [下载 exe 文件](https://github.com/saby-integration/v8unpack/releases/) 可以通过运行项目根目录下的 build_local.cmd 来构建最新版本的 exe 文件。 如果您正在处理大型配置,请使用最新版本的 64 位 Python。 ## 解包 1С 文件 通过命令行: ``` v8unpack.exe -E d:/sample.cf d:/unpack ``` 通过 python: ``` import v8unpack if __name__ == '__main__': v8unpack.extract('d:/sample.cf', 'd:/unpack') ``` ## 构建源码 通过命令行: ``` v8unpack.exe -B d:/unpack d:/repacked.cf ``` 通过 python: ``` import v8unpack if __name__ == '__main__': v8unpack.build('d:/unpack', 'd:/repacked.cf') ``` ## 文档 [从同一套源码切换到构建](https://github.com/saby-integration/v8unpack/blob/main/docs/transition.md) [使用说明](https://github.com/saby-integration/v8unpack/blob/main/docs/usage.md) [更新历史](https://github.com/saby-integration/v8unpack/blob/main/docs/history.md) [参与贡献](https://github.com/saby-integration/v8unpack/blob/main/docs/develop.md) ## 调试 ## 限制 窗体标记和对象属性仍然不具备可读性,但以这种形式更容易对它们进行 分析,并在需要时扩展解析器。 目前,[该工具在我们所需的范围内涵盖了所有的元数据类型](https://github.com/saby-integration/v8unpack/blob/main/src/v8unpack/metadata_types.py), 如果您需要对某些对象进行更详细的解包,请在此处提交请求, 或者您也可以自行实现,我们非常欢迎[任何对项目的参与](https://github.com/saby-integration/v8unpack/blob/main/docs/develop.md)。
标签:1C:Enterprise, 1С:Предприятие, cfe文件, cf文件, epf文件, JSON, Python, URL提取, v8unpack, 二进制解包, 云资产清单, 反编译, 安全可观测性, 文件格式转换, 文件解析, 无后门, 源码提取, 版本控制, 逆向工具, 逆向工程, 配置提取