一个基于 Tkinter 的图形化 YARA 扫描工具,支持加载单个规则文件或规则目录,对文件、文件夹以及 Windows 进程内存进行扫描,并可将命中结果导出为 CSV 或 Excel 文件。
- 加载
.yar/.yara规则文件 - 递归加载规则目录
- 扫描单个或多个文件
- 扫描文件夹内的文件
- 扫描 Windows 进程内存
- 可选仅扫描可执行内存页
- 支持扫描超时和文件扫描线程数配置
- 支持结果筛选、排序、复制
- 支持导出 CSV 和 Excel
.xlsx
- Windows 10/11
- Python 3.10 或更高版本
- Tkinter,通常随 Python 官方安装包自带
yara-pythonpsutil
如果需要扫描其他进程内存,建议以管理员身份运行终端或 Python 解释器,否则部分进程可能因为权限不足无法读取。
在项目目录中执行:
python -m pip install -r requirements.txt如果安装或运行时提示 libyara.dll 缺失,优先尝试重新安装 yara-python:
python -m pip uninstall yara
python -m pip install --upgrade --force-reinstall yara-python如果仍然提示 DLL 问题,可以下载与系统位数匹配的 Windows YARA release,把 libyara.dll 放到 gui_yara_scanner.py 同目录,或者放到 Python 的 DLLs 目录。
python gui_yara_scanner.py启动后会进入图形界面。
点击左侧的「加载规则文件」选择单个 .yar 或 .yara 文件,或者点击「加载规则目录」选择包含规则的目录。目录加载会递归查找规则文件。
规则加载成功后,左侧会显示已解析出的规则数量和规则列表。
工具支持两种扫描模式:
- 文件扫描:选择文件或文件夹作为扫描目标
- 进程内存:刷新进程列表后,选择需要扫描的进程
文件扫描模式下,点击「选择文件」或「选择文件夹」添加目标。
进程内存模式下,点击「刷新进程」,选择进程后点击「添加选中进程」。如果扫描系统进程或高权限进程,请以管理员身份运行。
可以根据需要调整:
- 扫描超时时间
- 文件扫描线程数
- 是否仅扫描可执行内存页
内存扫描时启用「仅扫描可执行页」可以减少扫描范围,适合排查代码注入、内存马、Beacon 等场景。
确认规则和目标都已添加后,点击「开始扫描」。扫描过程中底部会显示进度、耗时和日志。
扫描结果会显示在右侧表格中,包含目标类型、目标路径或进程、规则文件、命中规则、特征标识、命中特征、位置类型和偏移地址。
可以使用筛选框按关键字过滤结果,也可以点击表头进行排序。
点击右上角「导出 CSV」或「导出 Excel」保存扫描结果。
README 中已经预留以下图片路径。上传到 GitHub 前,把你自己的截图放入 images/ 目录,并使用下面这些文件名即可自动显示:
images/main-window.pngimages/load-rules.pngimages/file-targets.pngimages/process-targets.pngimages/scan-options.pngimages/scanning.pngimages/results.pngimages/export-results.png
如果你想使用其他文件名,请同步修改 README 中对应的图片链接。
.
├── gui_yara_scanner.py
├── requirements.txt
├── README.md
├── images/
│ └── .gitkeep
└── yaraify-rules/
说明依赖未安装或安装到了其他 Python 环境中。请确认当前终端使用的是正确的 Python:
python --version
python -m pip install -r requirements.txtPython 里常用的是 yara-python。如果误装了 yara,请卸载后重装:
python -m pip uninstall yara
python -m pip install --upgrade --force-reinstall yara-python常见原因是权限不足、目标进程退出、或系统保护机制阻止读取。可以尝试:
- 以管理员身份运行终端
- 重新刷新进程列表
- 只选择需要排查的进程
- 启用「仅扫描可执行页」
本工具仅用于授权的安全检测、规则验证和应急排查。请不要在未授权的设备或环境中扫描文件或进程内存。







