Skip to content

JerryLinLinLin/huorong-cli-scanner

Repository files navigation

English

火绒命令行扫描器 (Huorong CLI Scanner)

Repo Status Issues Pull Requests License

这是一个非官方的命令行工具,用于调用火绒安全软件(个人版)进行文件或目录扫描,并自动解析扫描结果日志。该工具旨在方便将火绒扫描集成到 CI/CD 自动化管道或其他脚本中。

免责声明:本项目非火绒官方出品,仅供学习和技术交流使用。作者不对使用本工具造成的任何后果负责。

Scan Result Example

下载

请前往 GitHub Releases 页面下载最新版本的 huorong_cli_scanner.exe

前置条件 (Prerequisites)

  1. 火绒安全软件个人版 6.0:必须已安装在系统中。

  2. 关键设置: 为了确保火绒在扫描发现病毒时能自动写入日志而不是弹窗等待用户确认,必须进行以下设置:

    • 打开火绒主界面 -> 安全设置
    • 进入 查杀设置
    • 病毒处理方式 中选择 自动处理

    如果不开启“自动处理”,火绒可能会挂起等待用户操作,导致本工具因无法检测到日志更新而超时。

使用方法 (Usage)

huorong_cli_scanner.exe [options] target

参数说明

  • target: (必选) 要扫描的文件或文件夹路径。

选项 (Options):

  • -h, --help: 显示帮助信息。
  • --install-path INSTALL_PATH: 指定包含 HipsMain.exe 的火绒安装路径 (默认: C:\Program Files\Huorong\Sysdiag\bin)。
  • --timeout TIMEOUT: 等待日志更新的超时时间,单位秒 (默认: 60)。
  • --no-minimize: 禁用自动最小化火绒窗口的功能。
  • --show-json: 在终端输出完整的原始 JSON 日志数据。
  • --json-out JSON_OUT: 将解析后的 JSON 结果保存到指定文件。
  • --keep-temp: 保留复制日志数据库的临时文件夹(用于调试)。

示例

扫描当前目录并将结果保存为 JSON:

huorong_cli_scanner.exe . --json-out result.json

工作原理

  1. 启动扫描:工具调用火绒的 HipsMain.exe -s <目标路径> 命令启动扫描任务。
  2. 监控日志:工具会记录 C:\ProgramData\Huorong\Sysdiag\log.db-wal 的修改时间,并轮询等待文件更新(这意味着扫描产生新的日志记录)。
  3. 解析结果:一旦检测到日志更新,工具会将 log.db(SQLite 数据库)及其关联文件复制到临时目录,以避免文件锁定问题。
  4. 提取数据:读取 HrLogV3_60 表,查找最新的 SCANTYPE_custom(自定义扫描)任务记录。
  5. 输出报告:使用 Rich 库美化输出扫描摘要和威胁列表,并支持导出 JSON 格式结果。
  6. 干扰最小化:工具会尝试检测并最小化火绒弹出的扫描窗口,以减少对前台操作的干扰。

开发 (Development)

本项目使用 uv 进行包管理,使用 nuitka 进行打包编译。

  1. 安装依赖:

    uv sync
  2. 构建 (Build): 使用 Nuitka 打包为单文件可执行程序:

    uv run python -m nuitka .\huorong_cli_scanner.py

    编译产物将位于 dist 目录下。

License

MIT

About

火绒命令行扫描器 (Huorong CLI Scanner)

Topics

Resources

License

Stars

Watchers

Forks

Languages