Esta é uma implementação aproximada da estrutura de mineradores da ELF, conforme descrito neste artigo. A diferença é que esse modelo visa classificar um determinado elfo como malware ou benigno, mas não classifica o malware nos cinco tipos, conforme descrito no papel. Isso ocorre devido às limitações do conjunto de dados usado.
pip install -r requirements.txtpython run_system.pyIsso imprime a classe prevista (malware ou benigno) para cada arquivo ELF na mesma ordem que na Final.csv gerada na pasta ELFS .
feature_selection/weka_features_toremove.txt . Estes são os que têm 0 ganho de informação. Isso reduz o número de recursos para 147 .models .Duas classes de classificadores foram usadas no artigo -
Para os classificadores não evolutivos, usamos o Weka Toolkit e para os classificadores evolutivos, usamos o Keel Toolkit. A precisão de cada um desses classificadores (na divisão de 70-30 do teste de trem) é fornecida na keel/results/results.txt .
No entanto, o sistema de ponta a ponta incorpora um classificador de votação baseado apenas nos classificadores não evolutivos, devido à disponibilidade da API Java de Weka.
Se você encontrar algum problema ou bugs, sinta -se à vontade para abrir um problema ou abrir uma solicitação de tração, se desejar melhorar.