muhammed95rafi-arch/malware-file-scanner
GitHub: muhammed95rafi-arch/malware-file-scanner
一款基于多种静态分析技术的恶意软件文件扫描工具,通过哈希比对、特征匹配和熵分析等手段检测可疑文件并给出风险评分。
Stars: 0 | Forks: 0
# 恶意软件文件扫描器
一款静态文件分析工具,通过特征匹配、哈希比对、熵分析和启发式评分来检测恶意和可疑文件。
本项目作为一个作品集项目构建,旨在演示恶意软件分析的基础知识。
**本项目不包含也不会执行任何真实的恶意软件。** 检测逻辑使用行业标准 [EICAR 测试文件](https://en.wikipedia.org/wiki/EICAR_test_file) 进行验证,这也是所有商业杀毒软件供应商使用的安全测试字符串。
## 检测技术
| 技术 | 描述 |
|---|---|
| 哈希匹配 | 将文件的 SHA-256 与已知的恶意哈希数据库进行比对 |
| 特征扫描 | 在文件字节中搜索可疑的命令/字符串模式(reverse shell、混淆的 PowerShell、进程注入 API 调用等) |
| 熵分析 | 标记高熵文件,这是加壳/加密/混淆的常见指标 |
| 扩展名分析 | 标记双重扩展名伪装(例如 `invoice.pdf.exe`) |
| 风险评分 | 将所有信号整合为一个透明的 0-100 分数,并附带人类可读的判定结果和原因 |
## 使用方法
```
# 扫描单个文件
python main.py --file suspicious.exe
# 递归扫描目录
python main.py --dir /path/to/folder
# 将完整结果保存为 JSON
python main.py --dir /path/to/folder --json report.json
# 生成安全的 EICAR 测试文件以验证扫描器
python main.py --make-eicar
```
## 输出示例
```
File: eicar_test.txt
SHA-256: 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f
Entropy: 4.872
Verdict: MALICIOUS (100/100)
Reasons:
- Matches EICAR test signature
```
## 项目结构
```
malware-file-scanner/
├── main.py # CLI entry point
├── scanner.py # Core detection engine
├── signatures.py # Known hashes, suspicious strings, thresholds
└── README.md
```
## 扩展此工具
- 在 `signatures.py` 中的 `KNOWN_MALICIOUS_HASHES` 里,填入来自公共威胁情报源(MalwareBazaar、abuse.ch、VirusTotal)的哈希值。
- 为未知哈希添加 VirusTotal API 查询功能。
- 添加 APK manifest 解析功能,用于 Android 权限分析(相关模式已在 `signatures.py` 中定义)。
## 注意事项
这是一款**静态分析**工具——它在不执行文件的情况下检查其内容,这是任何恶意软件分析工作流程中安全的第一步。动态分析(行为监控)应始终在隔离的沙箱/虚拟机中进行,切勿在生产环境或日常使用的设备上执行。
标签:Homebrew安装, Python, 哈希匹配, 文档结构分析, 无后门, 熵分析, 特征码扫描, 逆向工具, 静态文件分析