Case 03 / 09Malware MLCompleted
BYTEHUNTER.
Malware triage for Windows executables, with one model deciding the verdict.
A FastAPI and React malware-triage app. Uploaded files are hashed and cached by SHA-256, parsed with LIEF into a 2,381-value feature vector and scored by the pre-trained EMBER 2018 LightGBM model. One threshold scale turns that score into SAFE, SUSPICIOUS or MALICIOUS, with a heuristic scorer as the fallback when the model isn't available. Random Forest and Logistic Regression add an agreement check, an XGBoost model trained on Microsoft BIG-2015 suggests a malware family for high scores, and SHAP-based explanations are summarised as text. Results are stored in SQLite and exported as PDF reports.
What I built
- Built the scan API: batch upload, SHA-256 caching, LIEF feature extraction into a 2,381-value vector, and verdict thresholds on the LightGBM score.
- Trained an XGBoost family classifier on Microsoft BIG-2015 and Random Forest and Logistic Regression comparison models, and added SHAP-based explanations.
- Added a heuristic fallback scorer, SQLite scan history and ReportLab PDF reports.
▶Demo
See it work.
An animated walkthrough of the interface, not a screen recording. The file, score and findings shown are example values, not a real scan.
01Architecture
How it's built.
Drawn from the project's source code, not its README: what each part actually does and how a request moves through it.
02Under the hood
How it works.
- 01
Cache
A SHA-256 lookup returns earlier results instantly
- 02
Features
LIEF parses the file into a 2,381-value vector
- 03
Score
Pre-trained LightGBM sets the verdict, with a heuristic fallback
- 04
Annotate
Agreement models, the XGBoost family and SHAP add context
- 05
Store
SQLite history and PDF reports