/EFEMalwareClassification

基于特征表达增强的恶意代码家族分类

Primary LanguageAssembly

EFEMalwareClassification

基于特征表达增强的恶意代码家族分类方法,首先反编译恶意代码源程序得到 .bytes文件和 .asm文件,然后通过N-Gram算法提取 .asm文件的文本特征,将两类文件转换成灰度图像,通过灰度共生矩阵和灰度直方图提取纹理特征和颜色特征,最后融合文本特征、纹理特征、颜色特征三类单一特征构建新的融合特征,增强恶意代码特征表达能力。

数据集

代码说明

数据预处理

  • randomsubset.py 抽取训练子集
  • getMap 获取ASM文件和Byte文件的灰度图

特征提取

  • getColor.py 获取灰度图像的颜色特征
  • getText.py Opcode n-gram获取ASM文件的文本特征
  • getTexture.py 获取ASM文件图像纹理特征

家族分类

  • ClassificationOfColor.py 基于颜色特征的家族分类
  • ClassificationOfText.py 基于文本特征的家族分类
  • ClassificationOfTexture.py 基于纹理特征的家族分类
  • ClassificationOfFusion.py 基于融合特征的家族分类

可视界面

  • MainWindow.ui 主界面UI
  • MainWindow.py 主界面UI对应的Pyqt代码
  • MainWindowControl.py 主界面对应控件的逻辑

运行说明

  1. 将完整的训练数据集解压,修改randomsubset.py中的路径并运行
  2. 修改getMap中的路径,转换灰度图
  3. 修改getColor.py,getText.pygetTexture.py中的路径,提取对应特征
  4. 运行run.sh,耐心等待不同特征的家族分类结果
  5. 运行MainWindowControl.py,进行简单功能演示

部分结果图

决策树

决策树

逻辑回归

逻辑回归

随机森林

随机森林

融合特征

融合特征