cchokaaa/malware-hash-scanner

GitHub: cchokaaa/malware-hash-scanner

Stars: 1 | Forks: 0

# Malware Hash Scanner Pro A professional malware analysis tool that computes cryptographic hashes, queries VirusTotal for threat intelligence, verifies file types, tracks historical scans, and generates structured JSON and PDF reports. ## Features ### Core Capabilities - Multi-hash computation (MD5, SHA1, SHA256) - VirusTotal API integration - Threat level classification - Batch directory scanning - JSON report export ### Advanced Features - File type verification using file signature analysis - Historical scan tracking - PDF report generation - Structured audit-style reporting ## Project Structure malware-hash-scanner/ │ ├── main.py ├── file_hasher.py ├── threat_checker.py ├── file_type_checker.py ├── history_tracker.py ├── report_generator.py │ ├── README.md ├── requirements.txt ├── .gitignore ├── LICENSE │ ├── reports/ │ └── (generated reports) │ ├── history/ │ └── scan_history.json │ └── sample/ └── suspicious_files/ └── test.txt ## Installation ### 1. Clone the Repository git clone https://github.com/cchokaaa/malware-hash-scanner.git cd malware-hash-scanner ### 2. Create a Virtual Environment python -m venv venv ### 3. Activate the Virtual Environment #### Windows PowerShell venv\Scripts\Activate.ps1 #### Git Bash source venv/Scripts/activate ### 4. Install Dependencies pip install -r requirements.txt ## VirusTotal API Setup This project uses the VirusTotal API to retrieve malware detection statistics based on file SHA256 hashes. Create a free account at: https://www.virustotal.com/ Generate an API key and configure it as an environment variable. ### PowerShell $env:VT_API_KEY="your_api_key_here" ### Git Bash export VT_API_KEY="your_api_key_here" ## Usage ### Scan a Single File python main.py sample/suspicious_files/test.txt ### Export JSON Report python main.py sample/suspicious_files/test.txt --json reports/report.json ### Export PDF Report python main.py sample/suspicious_files/test.txt --pdf reports/report.pdf ### Export Both JSON and PDF Reports python main.py sample/suspicious_files/test.txt --json reports/report.json --pdf reports/report.pdf ### Batch Scan a Directory python main.py sample/suspicious_files ## Sample Output ============================================================ file_name: test.txt file_path: D:\malware-hash-scanner\sample\suspicious_files\test.txt file_size: 43 md5: a123f7b957092282734d4a91fd193c05 sha1: 77b56de4e98c1a0889224fba1a506a2a870b72f7 sha256: adfa5212baafb6f3b92ad0ed5e093601bcad32d1f29694f66214447b2c8a23eb detected_type: unknown extension_matches: True suspicious: False malicious_count: 0 threat_level: Low ============================================================ ## Threat Level Classification | Malicious Detections | Threat Level | |---------------------:|:------------| | 0 | Low | | 1–3 | Medium | | 4–10 | High | | >10 | Critical | ## How It Works 1. **Cryptographic Hash Calculation** Computes MD5, SHA1, and SHA256 hashes for each file. 2. **File Type Verification** Uses magic-byte analysis to detect extension spoofing. 3. **VirusTotal Lookup** Sends the SHA256 hash to VirusTotal and retrieves malware detection statistics. 4. **Threat Scoring** Maps malicious detections to Low, Medium, High, or Critical. 5. **Historical Tracking** Stores each scan result in `history/scan_history.json`. 6. **Report Generation** Exports scan results to JSON and PDF formats. ## Example JSON Report Structure { "file_name": "test.txt", "file_path": "D:/malware-hash-scanner/sample/suspicious_files/test.txt", "file_size": 43, "md5": "...", "sha1": "...", "sha256": "...", "detected_type": "unknown", "extension_matches": true, "suspicious": false, "malicious_count": 0, "threat_level": "Low" } ## Security Concepts Demonstrated - Cryptographic hashing - Threat intelligence integration - File signature analysis - Malware triage - Risk scoring - Historical audit tracking - Automated reporting ## License This project is licensed under the MIT License. See the `LICENSE` file for details. ## Author cchokaaa ## Disclaimer This project is intended for educational, research, and defensive security purposes only. Users are responsible for complying with all applicable laws, regulations, and third-party service terms.