Aditya19110/Static-Analyzer

GitHub: Aditya19110/Static-Analyzer

一个基于 Flask 和 React 构建的静态恶意软件分析 Web 平台,提供 PE 文件结构解析及 VirusTotal 联动分析功能。

Stars: 0 | Forks: 0

# Silent Scan - 高级静态恶意软件分析器
![Silent Scan Logo](https://img.shields.io/badge/Silent%20Scan-v1.0-00e676?style=for-the-badge&logo=shield&logoColor=white) [![Security](https://img.shields.io/badge/Security-Static%20Analysis-blue?style=for-the-badge&logo=security&logoColor=white)](https://github.com/Aditya19110/Static-Analyzer) [![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE) [![Status](https://img.shields.io/badge/Status-Active-brightgreen?style=for-the-badge)](https://github.com/Aditya19110/Static-Analyzer) **一个尖端的静态恶意软件分析平台,无需执行潜在有害文件即可提供全面的安全洞察。** [在线演示](https://static-analyzer.vercel.app) | [文档](#features) | [报告 Bug](https://github.com/Aditya19110/Static-Analyzer/issues) | [请求功能](https://github.com/Aditya19110/Static-Analyzer/issues)
## 功能特性 ### 全面的静态分析 - **文件哈希生成**:MD5、SHA1 和 SHA256 加密哈希 - **PE 头检查**:入口点、镜像基址和编译时间戳分析 - **节区分析**:带有熵值计算的虚拟/原始大小比较 - **导入分析**:完整的 DLL 和函数导入映射 - **字符串提取**:提取可读字符串以获取行为洞察 - **语言检测**:使用启发式算法识别编程语言 ### VirusTotal 集成 - **多引擎扫描**:利用 70 多个杀毒引擎 - **实时结果**:实时轮询扫描完成状态 - **详细报告**:特定引擎的检测结果 - **统计概览**:恶意、可疑和安全的判定统计 ### 现代化 UI/UX - **响应式设计**:针对桌面和移动设备进行了优化 - **拖放界面**:直观的文件上传体验 - **实时进度**:分析过程中的视觉反馈 - **深色主题**:专业的网络安全美学 - **交互式结果**:带有详细信息可展开部分 ### 安全至上 - **不执行文件**:仅进行安全的静态分析 - **安全上传**:在隔离环境中处理文件 - **数据隐私**:临时文件存储并自动清理 - **API 安全**:速率限制和输入验证 ## 系统架构 ``` graph TB A[Frontend - React] -->|HTTPS| B[Backend - Flask] B -->|File Analysis| C[PE Parser] B -->|Hash Generation| D[Crypto Library] B -->|String Extraction| E[Binary Parser] B -->|VirusTotal API| F[VT Integration] C --> G[Analysis Report] D --> G E --> G F --> G G -->|JSON Response| A ``` ## 快速开始 ### 前置条件 - **Node.js** (v16 或更高版本) - **Python** (v3.8 或更高版本) - **VirusTotal API Key**(用于增强扫描) ### 安装步骤 1. **克隆仓库** git clone https://github.com/Aditya19110/Static-Analyzer.git cd Static-Analyzer 2. **后端设置** cd backend # 创建虚拟环境 (推荐) python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 从示例创建 .env 文件 cp .env.example .env # 编辑 .env 并添加你的 VirusTotal API key # 启动 Flask 服务器 python app.py 3. **前端设置** cd frontend # 安装依赖 npm install # 从示例创建 .env 文件 cp .env.example .env # 本地开发使用: REACT_APP_API_URL=http://localhost:5000 # 生产环境使用你部署的后端 URL # 启动开发服务器 npm start 4. **访问应用** - 前端:`http://localhost:3000` - 后端 API:`http://localhost:5000` ### 部署配置 **前端:** - 设置环境变量:`REACT_APP_API_URL=https://your-backend-url.com` - 从 GitHub 仓库部署 - Vercel 将自动检测 React 并进行构建 **后端:** - 设置环境变量: - `VIRUSTOTAL_API_KEY=your_api_key` - `PORT`(Render 会自动设置此项) - 构建命令:`pip install -r requirements.txt` - 启动命令:`python app.py` ## 技术栈 ### 前端 - **框架**:React 18 with Hooks - **样式**:Custom CSS with animations - **图标**:Lucide React - **状态管理**:React useState/useEffect - **构建工具**:Create React App ### 后端 - **框架**:Flask (Python) - **CORS**:Flask-CORS 用于跨域请求 - **文件分析**:pefile 库用于 PE 解析 - **安全**:Werkzeug 用于安全文件处理 - **外部 API**:VirusTotal API v3 ### 部署 - **前端**:Vercel (静态托管) - **后端**:Render (云托管) - **数据库**:基于文件(临时存储) ## API 端点 ### 静态分析 ``` POST /upload Content-Type: multipart/form-data Response: { "filename": "example.exe", "hashes": { "md5": "...", "sha1": "...", "sha256": "..." }, "pe_info": { "entry_point": "0x1000", "image_base": "0x400000", "compile_time": 1640995200 }, "sections": [...], "imports": [...], "strings": [...], "language_guess": "C++" } ``` ### VirusTotal 集成 ``` POST /api/virustotal/upload Content-Type: multipart/form-data GET /api/virustotal/analysis/{analysis_id} ``` ## ️ 开发 ### 项目结构 ``` Static-Analyzer/ ├── 📁 frontend/ # React application │ ├── 📁 public/ # Static assets │ ├── 📁 src/ │ │ ├── 📁 components/ # Reusable components │ │ ├── 📁 pages/ # Page components │ │ └── 📁 api/ # API utilities │ └── 📄 package.json ├── 📁 backend/ # Flask application │ ├── 📄 app.py # Main application │ ├── 📁 analysis/ # Analysis modules │ ├── 📁 uploads/ # Temporary file storage │ └── 📄 requirements.txt └── 📄 README.md ``` ### 贡献指南 1. **Fork** 本仓库 2. **创建** 一个功能分支 (`git checkout -b feature/AmazingFeature`) 3. **提交** 你的更改 (`git commit -m 'Add some AmazingFeature'`) 4. **推送** 到分支 (`git push origin feature/AmazingFeature`) 5. **打开** 一个 Pull Request ### 代码风格 - **前端**:ESLint + Prettier 配置 - **后端**:PEP 8 Python 风格指南 - **提交**:约定式提交消息 ## 安全注意事项 - **输入验证**:所有文件上传都经过类型和大小的验证 - **沙盒执行**:分析过程中不执行任何文件 - **API 速率限制**:VirusTotal API 调用受到限制 - **安全头**:实施了 CORS 和安全头 - **数据清理**:自动删除临时文件 ## 示例分析报告
点击展开示例输出 ``` { "filename": "sample.exe", "filesize": 1048576, "hashes": { "md5": "5d41402abc4b2a76b9719d911017c592", "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", "sha256": "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae" }, "pe_info": { "entry_point": "0x1000", "image_base": "0x400000", "compile_time": "2024-01-15 10:30:45" }, "sections": [ { "name": ".text", "virtual_size": 4096, "raw_size": 4096, "entropy": 6.2 } ], "virustotal": { "stats": { "malicious": 0, "suspicious": 0, "harmless": 67, "undetected": 3 } } } ```
## 许可证 本项目采用 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 支持与联系
**由 [Aditya Kulkarni](https://github.com/Aditya19110) 制作** [![GitHub](https://img.shields.io/badge/GitHub-Aditya19110-black?style=for-the-badge&logo=github)](https://github.com/Aditya19110) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue?style=for-the-badge&logo=linkedin)](https://linkedin.com/in/aditya-kulkarni) [![Email](https://img.shields.io/badge/Email-Contact-red?style=for-the-badge&logo=gmail)](mailto:aditya@example.com) **保持安全。信任之前先分析。**
标签:AMSI绕过, DAST, DeepSeek, DNS 反向解析, Flask, IP 地址批量处理, PB级数据处理, PE文件分析, Python安全开发, Vercel部署, VirusTotal集成, Web安全平台, 云安全监控, 反病毒扫描, 可执行文件分析, 威胁检测, 字符串提取, 安全运维, 导入表分析, 恶意软件分析, 文件哈希计算, 熵值分析, 网络信息收集, 网络安全, 网络安全审计, 自定义脚本, 逆向工具, 隐私保护, 静态分析