A machine learning-based antivirus solution developed by Yashraj Jangra. This project leverages data-driven techniques to distinguish between legitimate and malicious executable files, aiming to enhance malware detection accuracy and efficiency.
Table of Contents
- Overview
- Dataset
- Features
- Getting Started
- Usage
- Results
- Contributing
- License
- Author
This project implements a machine learning pipeline to classify Windows executable files as either legitimate or malicious. Using a rich dataset with a variety of executable file features, the model is trained to identify patterns commonly associated with malware. The goal is to provide an effective, automated approach to antivirus detection using data science techniques.
- The dataset consists of 138,047 samples, each representing a Windows executable file.
- Each sample contains 57 features, including:
- File metadata (e.g., Name, md5 hash, Machine type)
- PE header information (e.g., SizeOfOptionalHeader, Characteristics)
- Code and data segment sizes (e.g., SizeOfCode, SizeOfInitializedData)
- Resource statistics (e.g., ResourcesNb, ResourcesMeanEntropy)
- Entropy and size metrics for embedded resources
- Labels indicating whether the file is legitimate (1) or malicious (0)[1].
- Comprehensive Feature Set: 57 features per executable, including entropy, resource size, and PE header values.
- Large-Scale Data: Over 138,000 samples for robust model training and evaluation.
- Binary Classification: Predicts whether a file is legitimate or malware.
- Data Analysis: Exploratory data analysis and summary statistics included for transparency and reproducibility.
Prerequisites
- Python 3.x
- pandas
- (Other libraries as required by the notebook, e.g., scikit-learn, numpy, matplotlib)
Setup
- Clone the repository:
git clone https://github.com/Yashraj-Jangra/AntiVirus-ML.git cd AntiVirus-ML - Install dependencies:
pip install -r requirements.txt
- Download or ensure
data.csvis present in the project directory.
- Open the
AntiVirus.ipynbJupyter notebook. - Run the notebook cells sequentially to:
- Import and explore the dataset
- Preprocess the data
- Train and evaluate the machine learning model
- View results and performance metrics
- The notebook provides summary statistics for all features, including mean, standard deviation, min, max, and quartiles[1].
- Sample rows from both legitimate and malware files are displayed for transparency.
- Model performance metrics (accuracy, precision, recall, etc.) are reported at the end of the notebook.
Contributions are welcome! Please fork the repository and submit a pull request. For major changes, open an issue first to discuss your ideas.
This project is licensed under the MIT License.
Yashraj Jangra
GitHub Profile
For any questions or issues, please open an issue in the repository or contact the author via GitHub.