2026-01-16 01:04:43 +08:00

5.5 KiB
Raw Blame History

配置文件解密工具 (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"

工作流程

完整的配置修改流程

  1. 停止应用程序

    # 确保应用程序已关闭
    taskkill /F /IM GrabBagApp.exe
    
  2. 解密配置文件

    cd Tools\ConfigDecryptor
    decrypt_config.bat "C:\GrabBagApp\Config\config.encrypt" "GrabBagAppVisionRobot"
    

    解密后会在配置目录生成 config.xml 文件

  3. 修改配置

    # 使用文本编辑器修改 config.xml
    notepad "C:\GrabBagApp\Config\config.xml"
    
  4. 重启应用程序

    # 启动应用,配置将自动重新加密
    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

  1. 打开 ConfigDecryptor.pro 项目文件
  2. 配置构建套件Desktop Qt
  3. 构建项目
  4. 可执行文件将输出到 ../../bin 目录

错误处理

常见错误及解决方案

  1. 错误:解密失败

    • 原因:密钥错误
    • 解决:检查密钥是否正确(应用名称 + "VisionRobot"
  2. 错误:文件格式不匹配

    • 原因:不是有效的加密配置文件
    • 解决:确认文件是由应用程序加密生成的 config.encrypt
  3. 错误:无法创建输出文件

    • 原因:没有写入权限或目录不存在
    • 解决:以管理员身份运行或检查输出路径
  4. 错误:找不到 ConfigDecryptor.exe

    • 原因:工具未编译或路径错误
    • 解决:先编译 ConfigDecryptor 项目

安全提示

⚠️ 重要提示

  1. 密钥保护:解密密钥即为"应用名称 + VisionRobot",这是固定的。虽然简单,但配合目录权限控制,可以防止普通用户随意访问配置。

  2. 备份配置:在修改配置前,建议备份 config.encrypt 文件:

    copy config.encrypt config.encrypt.backup
    
  3. 权限要求:如果配置目录设置了权限保护,解密工具可能需要管理员权限:

    # 以管理员身份运行
    右键 -> 以管理员身份运行
    
  4. 配置验证:修改后的 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 校验和

开发指南

添加新功能

  1. main.cpp 中添加新的命令行选项
  2. 使用 QCommandLineParser 解析参数
  3. 调用 ConfigEncryption 类的相关方法

依赖项

  • Qt Core 模块
  • AppCommon 静态库(包含 ConfigEncryption 类)
  • VrUtils 静态库(日志功能)

许可证

内部工具,仅供 VisionRobot 项目使用。

版本历史

v1.0.0 (2024)

  • 初始版本
  • 支持基本的解密功能
  • 命令行参数解析
  • 批处理脚本支持

联系方式

如有问题或建议,请联系开发团队。