Skip to content

行舟软件

Menu
  • 首页
  • 快乐歌词
  • 小工具
  • 关于本站
  • 联系我们
Menu

SoftCT 软件文件验证工具

Posted on 2026年8月24日2026年8月30日 by xingzhou

软件CT** 是一个用于采集与校验软件目录文件完整性的跨平台工具。它可以把一个软件目录下的全部文件和子目录信息(路径、类型、大小、修改时间、MD5,以及 Windows 下的代码签名)登记为一份 YAML 清单;之后可在任意时刻基于该清单对目标目录做完整性校验,识别出被篡改 / 缺失 / 新增的文件。

基于 Qt 5 开发,提供图形界面与命令行两种使用方式,可运行于 Linux 与 Windows。


功能特性

  • 两种工作模式
    • 编辑模式(采集):选择软件根目录后递归采集全部文件/子目录信息;支持手动增删文件与子目录、刷新(重算大小/时间/MD5/签名)、保存为 YAML。
    • 验证模式(校验):加载已有 YAML,与目标目录实际内容逐一比对,标记「一致 / 不一致 / 缺失 / 新增」,并可导出验证报告。
  • 完整性信息采集:相对路径(POSIX 风格)、MIME 类型、字节大小、修改时间(UTC ISO‑8601)、MD5(分块计算,支持大文件与取消)。
  • 代码签名读取与验证(Windows):读取可执行文件的 Authenticode 嵌入式签名,提取签名者、证书编号(序列号)、签名时间并做有效性验证;签名时间同时支持旧式时间戳与 RFC3161 时间戳。文件信息表与验证结果表在 Windows 下均新增签名列。
  • 友好的界面:左侧目录树 + 右侧文件表(验证模式为「原始/当前」双行并按状态着色);支持文件名过滤、只看异常、右键菜单(打开、复制路径/MD5、查看签名信息等)、拖放目录/文件、最近文件历史、窗口与列宽记忆。
  • 命令行模式:无需 GUI 即可刷新清单或执行验证,便于接入自动化/CI。
  • 跨平台:源码全程 UTF‑8;Linux/Windows 统一用 CMake 构建;Windows 编译为 GUI 程序并内嵌应用图标。

使用

图形界面

soft-ct                 # 启动图形界面(默认编辑模式)
soft-ct <config.yml>    # 启动并加载指定清单,进入验证模式
  • 编辑模式:选择/拖入软件目录自动采集 → 可增删/刷新 → 保存为 *.softct.yml。
  • 验证模式:打开清单 → 确认「软件所在目录」→ 点「开始验证」→ 查看结果(可「保存验证结果」为 *.verify.yml)。

命令行

soft-ct --refresh <yaml>                  # 按清单重新采集并覆盖写回 yaml
soft-ct --verify  <yaml> --saveto <json>  # 按清单执行验证,结果写入 JSON
soft-ct --export-ico <out.ico> [--svg <path>]   # 从内置/指定 SVG 生成多尺寸 .ico
soft-ct --help | -h                       # 显示帮助

退出码:

码含义
0成功(验证时表示无差异)
1出错,或验证发现差异
2参数错误

说明:Windows 下为 GUI 子系统程序,命令行模式仍可用(退出码有效),但默认不向控制台输出文本。


YAML 清单格式

采集结果(节选,Windows 采集会额外写入 signature):

soft_ct_version: 1
software:
  name: safe-file-manager
  version: 1.2.0
  root: .                      # 采集时位置,验证时以界面所选目录为准
  collected_at: "2026-05-30T02:15:00Z"
directories:
  - name: bin
  - name: share/icons
files:
  - path: bin/app.exe
    type: "application/x-dosexec"
    size: 1245680
    mtime: "2026-05-29T18:21:33Z"
    md5: "0d4f3a2e9b78c1ad5e6f0c4b1a2d8e7f"
    signature:                 # 仅 Windows 采集时写入
      state: valid             # valid / invalid / none / unsupported / unknown
      signer: "Example, Inc."
      cert_serial: "026f295c7f2421f49a87d93369d05f3f"
      signed_at: "2026-01-27T16:14:19Z"

验证报告(*.verify.yml)包含 summary(total/match/mismatch/missing/extra)与逐条 items(含 original/current 对比)。

设计要点:路径统一相对根目录、POSIX 风格;时间统一 UTC;校验以 size + MD5 判定是否一致(mtime 仅展示)。


代码签名(Windows)

  • 采集/刷新时对常见可签名文件(.exe/.dll/.sys/.msi/...)读取 Authenticode 嵌入式签名并调用 WinVerifyTrust 验证。
  • 提取字段:签名者(证书主题名)、证书编号(序列号)、签名时间(优先签名者签名时间,其次旧式时间戳,最后 RFC3161 时间戳)。
  • 状态:valid(验证通过)/ invalid(验证未通过)/ none(无嵌入签名)/ unsupported(非 Windows)。
  • 界面:文件信息表与验证结果表在 Windows 下新增「签名者 / 证书号码 / 签名时间」列,并可通过右键「查看代码签名信息」查看详情。
  • 说明:仅识别嵌入式签名;通过安全编目(catalog)签名的系统组件会显示为「未签名」。

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • tcp-view: Linux系统查看tcp和udp连接的工具
  • QEmu-UI-qemu模拟器的图形界面
  • process-mon-Linux进程管理工具
  • sysinfo-Linux系统信息查看工具
  • SoftCT 软件文件验证工具
©2026 行舟软件 | Design: Newspaperly WordPress Theme