5.5 KiB
5.5 KiB
配置文件解密工具 (ConfigDecryptor)
概述
ConfigDecryptor 是用于解密 VisionRobot 项目中加密配置文件的命令行工具。
功能
- 解密
config.encrypt文件为config.xml - 支持自定义输出路径
- 命令行界面,方便集成到脚本
使用方法
方法一:使用批处理脚本(推荐)
# 进入工具目录
cd Tools\ConfigDecryptor
# 运行解密脚本
decrypt_config.bat "C:\path\to\config.encrypt" "GrabBagAppVisionRobot"
方法二:直接调用可执行文件
# 基本用法
ConfigDecryptor.exe <config.encrypt路径> --key <密钥>
# 指定输出路径
ConfigDecryptor.exe <config.encrypt路径> --key <密钥> --output <输出路径>
# 静默模式
ConfigDecryptor.exe <config.encrypt路径> --key <密钥> --silent
示例
# 解密 GrabBagApp 的配置
ConfigDecryptor.exe "C:\GrabBagApp\Config\config.encrypt" --key "GrabBagAppVisionRobot"
# 解密 LapWeldApp 的配置并指定输出路径
ConfigDecryptor.exe "D:\LapWeldApp\Config\config.encrypt" ^
--key "LapWeldAppVisionRobot" ^
--output "D:\LapWeldApp\Config\config_backup.xml"
各应用的密钥
| 应用名称 | 密钥 |
|---|---|
| GrabBagApp | GrabBagAppVisionRobot |
| LapWeldApp | LapWeldAppVisionRobot |
| ParticleSizeApp | ParticleSizeAppVisionRobot |
| WorkpieceApp | WorkpieceAppVisionRobot |
| BeltTearingApp | BeltTearingAppVisionRobot |
密钥规则:应用程序名称 + "VisionRobot"
工作流程
完整的配置修改流程
-
停止应用程序
# 确保应用程序已关闭 taskkill /F /IM GrabBagApp.exe -
解密配置文件
cd Tools\ConfigDecryptor decrypt_config.bat "C:\GrabBagApp\Config\config.encrypt" "GrabBagAppVisionRobot"解密后会在配置目录生成
config.xml文件 -
修改配置
# 使用文本编辑器修改 config.xml notepad "C:\GrabBagApp\Config\config.xml" -
重启应用程序
# 启动应用,配置将自动重新加密 GrabBagApp.exe应用程序启动时会:
- 检测到
config.xml存在 - 使用
config.xml更新config.encrypt - 删除
config.xml
- 检测到
命令行参数
必需参数
file- 要解密的 config.encrypt 文件路径(位置参数)
可选参数
-k, --key <key>- 解密密钥(必需)-o, --output <path>- 输出文件路径(默认:同级目录下的 config.xml)-s, --silent- 静默模式,只输出最少信息-h, --help- 显示帮助信息-v, --version- 显示版本信息
编译
使用 qmake
cd Tools\ConfigDecryptor
qmake ConfigDecryptor.pro
nmake # Windows MSVC
# 或
make # Linux/Unix
使用 Qt Creator
- 打开
ConfigDecryptor.pro项目文件 - 配置构建套件(Desktop Qt)
- 构建项目
- 可执行文件将输出到
../../bin目录
错误处理
常见错误及解决方案
-
错误:解密失败
- 原因:密钥错误
- 解决:检查密钥是否正确(应用名称 + "VisionRobot")
-
错误:文件格式不匹配
- 原因:不是有效的加密配置文件
- 解决:确认文件是由应用程序加密生成的 config.encrypt
-
错误:无法创建输出文件
- 原因:没有写入权限或目录不存在
- 解决:以管理员身份运行或检查输出路径
-
错误:找不到 ConfigDecryptor.exe
- 原因:工具未编译或路径错误
- 解决:先编译 ConfigDecryptor 项目
安全提示
⚠️ 重要提示:
-
密钥保护:解密密钥即为"应用名称 + VisionRobot",这是固定的。虽然简单,但配合目录权限控制,可以防止普通用户随意访问配置。
-
备份配置:在修改配置前,建议备份
config.encrypt文件:copy config.encrypt config.encrypt.backup -
权限要求:如果配置目录设置了权限保护,解密工具可能需要管理员权限:
# 以管理员身份运行 右键 -> 以管理员身份运行 -
配置验证:修改后的 config.xml 应符合 XML 格式,否则应用程序可能无法启动。
技术细节
加密格式
config.encrypt 文件格式:
+-------------------+
| 魔术头 (8 bytes) | "VRENC1.0"
+-------------------+
| 盐值 (16 bytes) | 随机生成
+-------------------+
| 加密数据 (N bytes) | 配置文件加密后的内容
+-------------------+
| 校验和 (4 bytes) | MD5 校验(前4字节)
+-------------------+
加密算法
- 密钥派生:PBKDF2 风格(10000轮 SHA-256)
- 加密方式:流密码(XOR with key)
- 完整性:MD5 校验和
开发指南
添加新功能
- 在
main.cpp中添加新的命令行选项 - 使用
QCommandLineParser解析参数 - 调用
ConfigEncryption类的相关方法
依赖项
- Qt Core 模块
- AppCommon 静态库(包含 ConfigEncryption 类)
- VrUtils 静态库(日志功能)
许可证
内部工具,仅供 VisionRobot 项目使用。
版本历史
v1.0.0 (2024)
- 初始版本
- 支持基本的解密功能
- 命令行参数解析
- 批处理脚本支持
联系方式
如有问题或建议,请联系开发团队。