HuyVjpPro1806/-windows-malware-api-call-analysis

GitHub: HuyVjpPro1806/-windows-malware-api-call-analysis

基于 Frida 动态插桩与机器学习的 Windows 恶意软件 API 调用分析工具,提供实时行为检测、MITRE ATT&CK 映射和自动化风险评分。

Stars: 0 | Forks: 0

# 🛡️ 恶意软件 API 分析器 **用于 Windows 恶意软件分析的现代 GUI 应用程序** 这是一个动态插桩工具,它使用 Frida 监控 Windows API 调用,检测恶意行为模式,并利用机器学习进行分类。 ## ✨ 功能 ### 🎯 核心能力 - **动态 API Hooking** - 使用 Frida 实时监控 100 多个 Windows API - **行为检测** - 识别恶意模式(注入、傀儡进程、勒索软件等) - **机器学习** - 使用随机森林分类器预测恶意/良性软件 - **MITRE ATT&CK 映射** - 自动化技术识别 - **IOC 提取** - 提取域名、IP、文件、注册表项 - **现代 GUI** - 美观、用户友好的界面 ### 🔍 检测类别 - 进程注入(经典注入、APC、进程镂空) - 文件操作与勒索软件模式 - 注册表持久化机制 - 网络通信与 C2 Beaconing - 凭据转储(LSASS 访问) - 反分析与规避技术 - 服务创建与权限提升 ## 🚀 快速开始 ### 方法 1:双击运行(最简单) 1. **双击 `RUN_ANALYZER.bat`** 2. GUI 将自动启动 3. 选择你的恶意软件样本 4. 点击“开始分析” ### 方法 2:直接使用 Python ``` # 启动现代 GUI python gui.py # 或使用命令行 python main.py sample.exe -t 30 ``` ## 📦 安装 ### 前置条件 - **Windows 10/11**(Windows API 分析所需) - 已安装并添加到 PATH 的 **Python 3.8+** - **管理员权限**(用于 Frida 插桩) ### 安装依赖 ``` pip install -r requirements.txt ``` 或手动安装: ``` pip install frida frida-tools scikit-learn joblib pandas ``` ## 📖 使用指南 ### GUI 应用程序 1. **选择目标** - 点击“浏览”选择可执行文件(.exe 或 .dll) - 或直接输入路径 2. **配置设置** - 设置超时时间(5-300 秒) - 启用/禁用机器学习预测 3. **运行分析** - 点击“▶️ 开始分析” - 查看实时控制台输出 - 查看实时更新的统计数据 4. **查看结果** - 点击“📄 查看报告”查看详细分析 - 点击“📊 打开日志”访问原始的 CSV/JSONL 日志 ### 命令行界面 ``` # 基本用法 python main.py malware.exe -t 30 # 禁用 ML python main.py malware.exe -t 60 --no-ml # 更长时间的监控 python main.py malware.exe -t 120 ``` ## 📊 输出文件 分析会在各自的文件夹中生成多个输出文件: ### `logs/` - **api_log.csv** - CSV 格式的 API 调用序列 - **api_log.jsonl** - JSONL 格式的详细事件 ### `reports/` - **report.txt** - 包含以下内容的综合分析报告: - 执行摘要 - API 调用序列 - 检测到的行为链 - 可疑指标 - IOC 提取 - MITRE ATT&CK 映射 - 风险评分和分类 - ML 预测结果 ### `models/` - **api_rf_model.pkl** - 训练好的随机森林模型 ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ GUI Layer │ │ (gui.py) │ └───────────────────────────────┬─────────────────────────────┘ │ ┌───────────────────────────────▼─────────────────────────────┐ │ Orchestration Layer │ │ (main.py) │ └──────┬────────────────────────┬─────────────────────────────┘ │ │ ┌──────▼──────────┐ ┌─────────▼────────────┐ │ Frida Hooking │ │ Analyzer Engine │ │ (hook.js) │ │ (analyzer.py) │ │ │ │ │ │ • 100+ APIs │ │ • Behavior chains │ │ • Native APIs │ │ • Indicators │ │ • Child tracking│ │ • IOC extraction │ └─────────────────┘ │ • MITRE mapping │ │ • Scoring │ └──────────┬───────────┘ │ ┌──────────▼───────────┐ │ ML Module │ │ (ml/predict_ml.py) │ │ │ │ • Random Forest │ │ • Feature extraction │ │ • Reliability check │ └──────────────────────┘ ``` ## 🎨 GUI 功能 ### 现代设计 - **深色主题**搭配强调色 - **实时统计数据** - 事件、API、风险评分、风险等级 - **颜色编码输出** - 信息、成功、警告、错误、API 调用 - **进度指示器** - 动画进度条 - **自定义按钮** - 现代悬停效果 ### 实时监控 - 带有语法高亮的实时控制台输出 - 统计数据每秒更新 - 带有颜色编码的风险评分可视化: - 🟢 低风险 (0-39):绿色 - 🟡 可疑 (40-49):黄色 - 🟠 中风险 (50-79):橙色 - 🔴 高风险 (80+):红色 ## 🔧 配置 ### 超时设置 - **短(5-15秒)**:快速分类 - **中(30-60秒)**:标准分析 - **长(120-300秒)**:深度行为分析 ### 机器学习 - 启用自动分类 - 需要在 `models/` 目录中放置训练好的模型 - 提供置信度分数和可靠性评估 ## 🛡️ 安全与最佳实践 ### ⚠️ 重要警告 1. **在隔离的 VM/沙箱中运行** - 切勿在主机系统上分析恶意软件 2. **分析前做好快照** - 启用 VM 快照以便还原更改 3. **禁用网络**(可选) - 防止恶意软件连接到 C2 服务器 4. **管理员权限** - Frida 插桩所需 5. **防病毒软件例外** - 可能需要将分析器文件夹排除在外 ### 推荐配置 ``` Host Machine (Safe) └─> Virtual Machine (Isolated) ├─> Windows 10/11 ├─> Python + Dependencies ├─> Malware Analyzer └─> Malware Samples ``` ## 📚 训练 ML 模型 如果你想训练自己的模型: ``` # 下载数据集 (Kaggle IEEE API Call Sequence Dataset) # 放入 dataset/ 文件夹 # 训练模型 python ml/train_ml_kaggle.py \ --csv dataset/dynamic_api_call_sequence_per_malware_100_0_306.csv \ --model models/api_rf_model.pkl \ --malware-ratio 3 ``` ## 🐛 故障排除 ### 常见问题 **1. “未安装 Frida”** ``` pip install frida frida-tools ``` **2. “拒绝访问”错误** ``` # 以管理员身份运行 Right-click → Run as Administrator ``` **3. “找不到模型”** ``` # 训练或下载模型 python ml/train_ml_kaggle.py --csv dataset/... ``` **4. “找不到目标”** - 检查文件路径是否正确 - 使用绝对路径或将样本放在 `samples/` 文件夹中 **5. GUI 无法启动** ``` # 检查 Python 版本 python --version # Should be 3.8+ # 检查 tkinter python -c "import tkinter" ``` ## 📈 理解结果 ### 风险等级 - **低风险 (0-24)**:极少的可疑行为 - **可疑 (25-39)**:一些令人担忧的模式 - **中风险 (40-79)**:多个可疑指标 - **高风险 (80+)**:确凿的恶意软件证据 ### MITRE ATT&CK 技术 检测到的常见技术: - **T1055** - 进程注入 - **T1105** - 入口工具转移(下载) - **T1486** - 加密数据以造成影响(勒索软件) - **T1547.001** - 注册表 Run 键(持久化) - **T1543.003** - Windows 服务(持久化) - **T1497** - 虚拟化/沙箱规避 ## 📝 项目结构 ``` malware_api_analyzer/ ├── gui.py # Modern GUI application ├── RUN_ANALYZER.bat # One-click launcher ⭐ NEW ├── requirements.txt # Dependencies ⭐ NEW ├── main.py # CLI entry point ├── analyzer.py # Core analysis engine ├── hook.js # Frida JavaScript hooks ├── rules.py # Detection rules ├── ml/ # Machine Learning module │ ├── train_ml_kaggle.py │ ├── predict_ml.py │ ├── ml_features.py │ └── api_mapping.py ├── dataset/ # Training datasets ├── samples/ # Test malware samples ├── logs/ # Analysis logs ├── reports/ # Generated reports └── models/ # ML models ``` ## 📄 许可证 这是一个用于恶意软件分析研究和教育的学术项目。 **⚠️ 仅用于:** - 安全研究 - 恶意软件分析培训 - 学术目的 - 授权的渗透测试 **❌ 严禁用于:** - 恶意目的 - 未经授权的系统访问 - 违反法律法规 ## 🎓 学术背景 **项目类型**:毕业设计 / Capstone 项目 **主题**:恶意软件分析与动态插桩 **技术栈**:Python、Frida、机器学习、Windows API **主要学习成果**: - Windows API 内部机制 - 动态插桩技术 - 恶意软件行为分析 - 网络安全中的机器学习 - 软件工程最佳实践 ## 📞 支持 如遇问题或疑问: 1. 查看上方的故障排除部分 2. 检查控制台输出中的错误消息 3. 检查 `logs/` 文件夹中的日志 4. 确保以管理员身份运行 ## 🌟 致谢 - **Frida** - 动态插桩框架 - **scikit-learn** - 机器学习库 - **Kaggle IEEE Dataset** - ML 模型的训练数据 **版本**:2.0(现代版) **最后更新**:2026-06-06 **状态**:生产就绪 ✅ 为网络安全教育用心 ❤️ 制作
标签:Apex, DAST, Docker支持, Frida, IP 地址批量处理, WSL, 恶意软件分析, 数据可视化, 机器学习, 逆向工具