Il s'agit d'une implémentation approximative du cadre de mineur ELF comme décrit dans cet article. La différence étant que ce modèle vise à classer un ELF donné comme un logiciel malveillant ou bénin mais ne classe pas les logiciels malveillants dans les cinq types décrits dans l'article. Cela est dû aux limites de l'ensemble de données utilisé.
pip install -r requirements.txtpython run_system.pyCela imprime la classe prévue (malware ou bénigne) pour chaque fichier ELF dans le même ordre que dans le Final.csv généré dans le dossier ELFS .
feature_selection/weka_features_toremove.txt . Ce sont ceux qui ont 0 gain d'information. Cela réduit le nombre de fonctionnalités à 147 .models .Deux classes de classificateurs ont été utilisées dans le journal -
Pour les classificateurs non évolutionnaires, nous avons utilisé la boîte à outils Weka et pour les classificateurs évolutifs, nous avons utilisé la boîte à outils de la quille. La précision de chacun de ces classificateurs (sur 70-30 fractionnement de la fraction de test de train) est donnée dans keel/results/results.txt .
Cependant, le système de bout en bout intègre un classificateur de vote basé uniquement sur les classificateurs non évolutifs, en raison de la disponibilité de l'API Java de Weka.
Si vous trouvez des problèmes ou des bogues, n'hésitez pas à ouvrir un problème ou à ouvrir une demande de traction si vous souhaitez apporter une amélioration.