L1B0 / Malicious-program-classification-and-recognition

小学期 - 基于word2vec的恶意程序分类识别

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Malicious-program-classification-and-recognition

0. 文件说明

word2vecTF-IDF文件夹均封装成python模块。

viper-plugin内有mcrtools文件夹和mcr.py,将这两个文件放入viper/viper/modules即可。

1. 前言

本插件实现了基于word2vec和TF-IDF算法的恶意程序分类识别。

2. 依赖

语言:Python3

系统:Windows & Linux

软件:IDA Pro & idapython(windows), viper(linux)

3. 使用说明

3.1 训练模型

在windows系统下准备好恶意程序的训练集和测试集。

训练集

win-ls-pe

测试集

win-w2v-test

3.1.1 word2vec预处理 - 反汇编

在文件夹word2vec同层目录下打开命令行,例子如下

win-word2vec

当执行结束后,脚本会在恶意样本文件夹同层目录下生成一个名为asm的文件夹,存储恶意样本生成的汇编代码,一个名为ans的文件夹,存储asm文件转化的由汇编指令组成的语句文件,以及一个文件top100.txt,存有按出现次数从多到少排序的汇编指令列表。

# l1b0 @ l1b0-PC in /media/l1b0/软件工程_日常/大四上/小学期 [13:51:53] 
$ ls
ans
asm
top100.txt
PE文件-文件名为家族名

3.1.2 TF-IDF预处理

在文件夹TF-IDF同层目录下打开命令行,例子如下

win-tf-example

执行结束后,脚本会在恶意样本文件夹同层目录下生成一个名为api的文件夹,存储恶意样本中提取的api,一个名为functimes的文件夹,存储样本中的api向量,以及一个名为topapi.txt的文件,存储关键程度高的api名字。

# l1b0 @ l1b0-PC in /media/l1b0/软件工程_日常/大四上/小学期 [13:51:53] 
$ ls
api
functimes
topapi.txt
PE文件-文件名为家族名

3.1.3 模型训练

viper-plugin文件夹里的mcrtools文件夹及mcr.py放在viper/viper/modules路径下。

在路径/viper下执行sudo pip3 install .更新模块。

执行下图命令开始模型的训练,参数一代表word2vec方法生成的语句文件,参数二代表TF-IDF方法生成的api向量文件,二者缺一不可。

viper-test

训练完成后会在ans同目录下生成一个model文件夹,里面存储了训练产生的模型,用于后续预测样本。

3.2 样本分类识别

3.2.1 word2vec预处理 - 反汇编

在文件夹word2vec同层目录下打开命令行,例子如下

win-w2v-t

3.2.2 TF-IDF预处理

在文件夹TF-IDF同层目录下打开命令行,例子如下

win-tf-tt

3.2.3 预测

viper-ttt

结束后会在ans同目录下生成一个answer.txt的文件,存有每个样本的预测结果。

About

小学期 - 基于word2vec的恶意程序分类识别


Languages

Language:Python 100.0%