alexbeatnik/AV
GitHub: alexbeatnik/AV
一款零依赖的 Windows 便携式多引擎杀毒工具,通过 ClamAV、YARA 规则和 VirusTotal 三层检测机制提供轻量级的恶意软件防护。
Stars: 0 | Forks: 0
# AV
+ VirusTotal x/y` |
| YARA 匹配,VirusNormal 扫描干净(20+ 引擎 0 标记) | 极有可能是误报 | 文件保留原位,并记录在日志中 |
| YARA 匹配,VT 不确定 / 未知 / 无法访问 | 怀疑 | 由你通过威胁对话框决定(或者在开启自动隔离时静默隔离——可在“隔离区”页面撤销) |
| YARA 匹配,未配置 VT 密钥 | 怀疑 | 经典流程:弹出威胁对话框 / 自动隔离 |
当文件在等待 VirusTotal 判决时,不会有任何程序触碰它,扫描摘要也会如实说明,判决结果通常会在几秒钟内出现在日志(和托盘)中。针对转储进程内存的 YARA 匹配会跳过等待步骤——因为转储文件在扫描结束时会被删除,所以它们会直接进入威胁处理流程。
YARA 引擎(`yara64.exe`,来自官方的 [VirusTotal/yara](https://github.com/VirusTotal/yara) 发布版)和 YARA Forge *核心* 规则集会在首次运行时自动下载,并且规则每周刷新一次。自定义规则请放入 `yara\rules\custom\`。
所有配置都在 **设置 → DETECTION ENGINES…** 中完成——包括 YARA 开关和规则维护,以及 VirusTotal API 密钥(可在 [virustotal.com](https://www.virustotal.com/) 免费注册账号)和哈希检查与上传的开关。隔离区的 **属性** 对话框和 **威胁对话框** 也有一个 VIRUSTOTAL 按钮,可以在浏览器中打开该文件的公开 VT 页面——该功能无需任何 API 密钥即可使用。
## 安全设计流水线
每个被扫描的文件都会遵循多阶段的纵深防御安全流水线,以高效隔离和消除威胁,同时最小化性能影响并防止对干净文件的误报:
```
[ Threat Sources (Disk / RAM / Folder Monitor) ]
│
▼
┌───────────────────────┐
│ 1. Signature Engine │ ──(Threat Found)──► [ Auto-Quarantine / Alert ]
│ (ClamAV CVD/CLD) │
└───────────────────────┘
│
(No matches)
▼
┌───────────────────────┐
│ 2. Heuristics Engine │ ──(No matches)────► [ Target Allowed (Clean) ]
│ (YARA ruleset) │
└───────────────────────┘
│
(Suspicious)
▼
┌───────────────────────┐
│ 3. Cloud Reputation │ ──(Clean / 0 flags)► [ Left in Place (False Pos.)]
│ (VirusTotal Hash API)│
└───────────────────────┘
│
(≥ 3 Engines)
▼
[ Threat Verdict Confirmed ]
│
▼
[ Neutralized Quarantine / XOR ]
```
## 特性
- 扫描文件、文件夹或**整台电脑**;**内存扫描**(实时进程内存——捕获磁盘上隐藏的注入/解压代码);对常见感染点进行**快速扫描**;**快速全盘扫描**(仅针对高风险文件类型,可在设置中切换);计划快速扫描(每周/每日)
- **扫描时使用 clamd 引擎**:数据库加载到内存中进行并行扫描,仅在扫描期间驻留
- **自动检查新文件**:文件夹监控(下载、桌面、Program Files、Temp、AppData…)——新文件会被所有引擎自动扫描
- **威胁处理**:针对每个文件可选择隔离 / 删除 / 排除,或者静默自动隔离
- **无害化隔离区**(XOR 转换的 `.quar` 文件,既无法运行也不会触发其他杀毒软件),支持搜索、排序以及包含 SHA256 在内的属性查看
- **白名单**、**USB 扫描提醒**、**扫描性能模式**,带有进度和预计到达时间(ETA)的可读彩色日志、统计数据
- 一键更新特征码,每日自动检查(当特征码超过一周未更新时会发出**数据库过期警告**),应用可从该仓库的 GitHub Releases 进行**自更新**
- **便携版或按用户安装**(无需管理员权限)——首次运行会询问一次;托盘图标、自启动、单实例、固定大小的暗色主题窗口
## 构建
```
.\build.ps1 # builds AV.exe with the csc.exe built into Windows
.\test.ps1 # builds and runs the unit tests (AVUI.Tests.exe)
```
无需安装任何东西。有关贡献者/代理指南,请参见 `AGENTS.md`(硬性限制:C# 5,仅限 .NET Framework 4.8 BCL,不使用 NuGet)。
## 在新电脑上安装
将单一的 `AV.exe` 复制到任意位置并运行。首次启动会询问:是按用户安装到 `%LocalAppData%\Programs\AV`(无需管理员权限,创建快捷方式及“应用”菜单项),还是保持便携模式。ClamAV(包含数据库约 220 MB)和 YARA 引擎及规则(约 15 MB)将被自动下载。
## 结构
```
src/ — the application (WinForms, C# 5), one portable exe
MainForm.Yara.cs — YARA engine: download, Forge rules, scan phase
MainForm.VirusTotal.cs — VT hash lookups, opt-in uploads, rate limiting
MainForm.Engines.cs — the engines settings dialog
MainForm.Scan.cs — scans, progress/ETA, clamd engine
MainForm.*.cs — monitor, quarantine, updates, install, USB, UI…
Lang.cs — English/Ukrainian string table
tests/ — unit tests + zero-dependency test runner
build.ps1 / test.ps1 — zero-toolchain build scripts
app.ico / logo.png — placeholder shield icon (temporary branding)
clamav/ — portable ClamAV (not in git, downloaded)
yara/ — yara64.exe + rules (not in git, downloaded)
quarantine/ — neutralized (.quar) files + index
```
## 许可证
[Apache License 2.0](LICENSE)。ClamAV® 是 Cisco Systems, Inc. 的注册商标(GPLv2,作为独立的未修改进程运行);YARA 版权归 VirusTotal 所有(BSD-3);规则由 [YARA Forge](https://github.com/YARAHQ/yara-forge) 提供(适用捆绑规则集的许可协议);VirusTotal 通过其公共 API 并在其服务条款下使用。本项目是一个独立的开源 UI,与上述任何一方均无附属关系。
标签:ClamAV, Web 安全测试, YARA, 云资产可视化, 防病毒软件