Skip to content
/ mlmc Public

Binary classification of PE files using neural network

License

Notifications You must be signed in to change notification settings

karust/mlmc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning Malware Classifyer (MLMC)

What is this?

This is the app for classifying of malwares using machine learning approach. It uses trained neural network to classify given PE file as malicious or legitimate.

Currently MLMC implements approach of static analysis of files - it collects some static parameters of file, that are then fed into neural network, which was previously trained on a tousands of malicious and legitimate samples.

Note: code not fully ported to Linux.
Note: Server now only tested on Ubuntu-18.

Installation

  • Clone repository:
git clone https://github.com/karust/av_back.git

cd av_back
  • Create Python virtual enviournment and activate it:
virtualenv mlmcb

source ./mlmcb/bin/activate
  • Install required libraries:
pip3 install -r requirements.txt

Description

Project consists of 3 parts:

  • Server - Web server for classification of PE files.
  • Static - Code for classifying PE files by their static features.
    1. collect_data.py - collect static features of PE files;
    2. training.py - train neural network on collected data;
    3. analyzer.py - server with the trained neural network on board.
  • Auxillary - Helper modules. Currently there is a script which helps to collect data in one place to further analysis.

Launching (locally)

python3 main.py

Using app

  1. Head on to http://127.0.0.1:8888/ in your favorite browser and see menu where you can select one file to analyze or even folder: image

  1. If there is no error, after some time file should be uploaded:

  1. Then you can navigate to analysis menu where you can see the results and play with sorting of files:

  1. If you interested in more detailed information you can click by the file and see its features: