koloboc74/v8unpack
GitHub: koloboc74/v8unpack
一款将1C:Предприятие 8.x二进制配置文件解包为JSON和独立代码文件的工具,使1C开发能够纳入标准版本控制系统并支持自动化构建。
Stars: 0 | Forks: 0
# saby v8unpack
[](https://pypi.python.org/pypi/v8unpack)
[](https://pypi.python.org/pypi/v8unpack)
[](https://pypi.python.org/pypi/v8unpack)
[](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. 组织代码和存储结构
* 将代码区域和窗体面板提取到单独的文件中
* 从多个文件构建代码和窗体
* 将元数据对象、窗体面板、文件或代码区域按子模块进行划分
* 在不使用区域的情况下按版本对扩展代码进行版本控制

## 安装说明
```
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, 二进制解包, 云资产清单, 反编译, 安全可观测性, 文件格式转换, 文件解析, 无后门, 源码提取, 版本控制, 逆向工具, 逆向工程, 配置提取