# 基于卷积神经网络的恶意软件检测方法
## 项目结构
```
software/ // 可执行文件
malware/
normal/
utils/ // 处理可执行文件的脚本
exe_add_remove_prefix.py
exe_filter.py
exe_analyse.py
exe_to_bytes.py
exe_to_img.py
imgs/ // 灰度图像
malware_img/
normal_img/
data/ // 训练集和验证集
train/
malware/
normal/
valid/
malware/
normal/
split_data.py // 划分训练集和验证集
exe_rm.txt
loss_history.py // 绘制ACC曲线和LOSS曲线的共用类
model/ // 存储模型
output/ // 存储特征向量
result/ // 存储模型验证结果
vgg16-finetune.py // VGG16单模型评测和特征向量提取
inceptionv3-finetune.py // inception-v3单模型评测和特征向量提取
xception-finetune.py // xception单模型评测和特征向量提取
resnet50-finetune.py // resnet50单模型评测和特征向量提取
merge_all.py // 模型融合
my_model.py // 自定义模型
predict.py // 模型正确率、误报率、漏报率、时间开销评估
merge_all_predict.py // 模型正确率、误报率、漏报率评估
inception.py // 自定义inception模型(示例程序,不参与最后的模型评估)
run.sh
```
## 基本流程
### 收集数据
首先通过各种渠道收集大量的恶意软件和良性软件,其中良性软件主要来自于 WinXP、Win7、Win8、Win10 等几个系统。恶意软件主要来自专门收集恶意软件的网站。这里推荐一个[站点](https://virusshare.com/about.4n6)。
### exe_add_remove_prefix.py
为良性软件添加 winxp_、win7_、win8_、win10 前缀,用以区分来自不同操作系统的良性软件。
### exe_analyse.py
对恶意软件和良性软件的大小进行分析,通过分析我们可以得出以下结论:
- 有 99% 的良性软件大小在 0 ~ 8 MB 之间。
- 有 99.87% 的良性软件大小大于 1 KB。
- 有 99% 的恶意软件大小在 0 ~ 3 MB 之间。
- 有 99% 的恶意软件大小大于 200 B。
具体的分析结果如下所示:
```
====================================================================================================
良性软件总数: 10059
> 0 MB 的良性软件数量: 10059 100.00%
> 1 MB 的良性软件数量: 1935 19.24%
> 2 MB 的良性软件数量: 1110 11.03%
> 3 MB 的良性软件数量: 661 6.57%
> 4 MB 的良性软件数量: 372 3.70%
> 5 MB 的良性软件数量: 224 2.23%
> 6 MB 的良性软件数量: 160 1.59%
> 7 MB 的良性软件数量: 119 1.18%
> 8 MB 的良性软件数量: 78 0.78%
> 9 MB 的良性软件数量: 43 0.43%
> 10 MB 的良性软件数量: 0 0.00%
====================================================================================================
恶意软件总数: 57988
> 0 MB 的恶意软件数量: 57988 100.00%
> 1 MB 的恶意软件数量: 2092 3.61%
> 2 MB 的恶意软件数量: 920 1.59%
> 3 MB 的恶意软件数量: 558 0.96%
> 4 MB 的恶意软件数量: 304 0.52%
> 5 MB 的恶意软件数量: 163 0.28%
> 6 MB 的恶意软件数量: 91 0.16%
> 7 MB 的恶意软件数量: 71 0.12%
> 8 MB 的恶意软件数量: 64 0.11%
> 9 MB 的恶意软件数量: 50 0.09%
> 10 MB 的恶意软件数量: 46 0.08%
====================================================================================================
良性软件总数: 10059
> 0 KB 的良性软件数量: 10059 100.00%
> 1 KB 的良性软件数量: 10046 99.87%
> 2 KB 的良性软件数量: 10035 99.76%
> 3 KB 的良性软件数量: 10030 99.71%
> 4 KB 的良性软件数量: 10019 99.60%
> 5 KB 的良性软件数量: 10004 99.45%
> 6 KB 的良性软件数量: 9990 99.31%
> 7 KB 的良性软件数量: 9972 99.14%
> 8 KB 的良性软件数量: 9941 98.83%
> 9 KB 的良性软件数量: 9902 98.44%
> 10 KB 的良性软件数量: 9848 97.90%
====================================================================================================
恶意软件总数: 57988
> 0 KB 的恶意软件数量: 57988 100.00%
> 1 KB 的恶意软件数量: 55711 96.07%
> 2 KB 的恶意软件数量: 54521 94.02%
> 3 KB 的恶意软件数量: 53616 92.46%
> 4 KB 的恶意软件数量: 52961 91.33%
> 5 KB 的恶意软件数量: 52446 90.44%
> 6 KB 的恶意软件数量: 51812 89.35%
> 7 KB 的恶意软件数量: 51230 88.35%
> 8 KB 的恶意软件数量: 50403 86.92%
> 9 KB 的恶意软件数量: 49807 85.89%
> 10 KB 的恶意软件数量: 49154 84.77%
====================================================================================================
恶意软件总数: 57988
> 0 B 的恶意软件数量: 57988 100.00%
> 100 B 的恶意软件数量: 57791 99.66%
> 200 B 的恶意软件数量: 57555 99.25%
> 300 B 的恶意软件数量: 57315 98.84%
> 400 B 的恶意软件数量: 57094 98.46%
> 500 B 的恶意软件数量: 56903 98.13%
> 600 B 的恶意软件数量: 56475 97.39%
> 700 B 的恶意软件数量: 56268 97.03%
> 800 B 的恶意软件数量: 56119 96.78%
> 900 B 的恶意软件数量: 55971 96.52%
> 1000 B 的恶意软件数量: 55785 96.20%
```
### exe_filter.py
通过对恶意软件和良性软件的大小进行分析,我们可以对恶意软件和良性软件进行初步的筛选:
- 删除大小大于 2 MB 或者小于 500 B 的恶意软件。
- 删除大小大于 5 MB 或者小于 1KB 的良性软件。
在项目根目录下生成 `exe_rm.txt` 文件,该文件记录了所有的要删除的 exe 文件名。
### exe_to_img.py
将可执行文件转为灰度图片。
### split_data.py
划分数据集,产生 `data/` 文件夹,其中划分规则大致如下:
- 良性软件和恶意软件一样多
- 80% 的数据划入训练集,20% 的数据划入验证集
程序运行结果如下:
```
Backdoor num: 10854
Trojan num: 24428
worm num: 1349
exploit num: 409
正常软件的数量: 9822
恶意软件的数量: 9820
```
### run.sh
训练所有模型并评估。
## 模型融合示意图
![模型融合示意图](./result/merge_model.png)
其他模型的示意图也存放在 result 文件夹下。
## 评估结果
模型名 | 正确率 | 误报率 | 漏报率 | 时间开销
-|-|-|-|-
VGG16 | 95.92% | 3.46% | 4.59% | 58s
Xception | 95.16% | 6.87% | 2.80% | 62s
inception-v3 | 94.20% | 5.95% | 5.65% | 47s
ResNet50 | 94.40% | 6.26% | 4.94% | 54s
模型融合 | 96.65% | 3.21% | 3.49% | /
自定义模型 | 96.75% | 3.11% | 3.39% | 73s
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【作品名称】:基于python卷积神经网络的恶意软件检测方法 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: ## 项目结构 ``` software/ // 可执行文件 malware/ normal/ utils/ // 处理可执行文件的脚本 exe_add_remove_prefix.py exe_filter.py exe_analyse.py exe_to_bytes.py exe_to_img.py
资源推荐
资源详情
资源评论
收起资源包目录
基于python卷积神经网络的恶意软件检测方法 (165个子文件)
.DS_Store 6KB
samples.gif 25.45MB
.gitignore 38B
.gitignore 30B
data_augmentation-checkpoint.ipynb 275KB
data_augmentation.ipynb 275KB
check.ipynb 5KB
data_analyse-checkpoint.ipynb 5KB
sample_100.jpg 123KB
sample_200.jpg 120KB
sample_700.jpg 116KB
sample_900.jpg 116KB
sample_800.jpg 116KB
sample_400.jpg 116KB
sample_300.jpg 114KB
sample_600.jpg 114KB
sample_500.jpg 113KB
sample_0.jpg 105KB
test.jpg 41KB
gen_0_3740.jpg 40KB
gen_0_6102.jpg 39KB
gen_0_9537.jpg 39KB
gen_0_9209.jpg 39KB
gen_0_7604.jpg 39KB
gen_0_1565.jpg 39KB
gen_0_1205.jpg 39KB
gen_0_6369.jpg 39KB
gen_0_5075.jpg 39KB
gen_0_2007.jpg 39KB
gen_0_3259.jpg 39KB
gen_0_1047.jpg 39KB
gen_0_256.jpg 38KB
gen_0_2967.jpg 38KB
gen_0_4116.jpg 38KB
gen_0_2833.jpg 38KB
gen_0_5099.jpg 38KB
gen_0_3025.jpg 38KB
gen_0_4398.jpg 38KB
gen_0_6697.jpg 38KB
gen_0_5914.jpg 38KB
gen_0_6742.jpg 38KB
gen_0_9050.jpg 38KB
gen_0_1080.jpg 38KB
gen_0_8424.jpg 38KB
gen_0_4509.jpg 38KB
gen_0_6958.jpg 38KB
gen_0_7514.jpg 38KB
gen_0_7475.jpg 38KB
gen_0_7975.jpg 38KB
gen_0_885.jpg 38KB
gen_0_1189.jpg 38KB
gen_0_2310.jpg 37KB
gen_0_4994.jpg 37KB
gen_0_8872.jpg 37KB
gen_0_4643.jpg 37KB
gen_0_3008.jpg 37KB
gen_0_9122.jpg 37KB
gen_0_2018.jpg 37KB
gen_0_757.jpg 37KB
gen_0_5472.jpg 37KB
gen_0_9913.jpg 37KB
gen_0_2893.jpg 36KB
gen_0_1084.jpg 36KB
gen_0_298.jpg 36KB
gen_0_3121.jpg 35KB
gen_0_6588.jpg 35KB
gen_0_3204.jpg 35KB
gen_0_4703.jpg 35KB
gen_0_4246.jpg 34KB
gen_0_4149.jpg 34KB
README.md 7KB
README.md 6KB
inceptionv3.png 2.36MB
resnet50.png 1.9MB
xception.png 1.37MB
my_model.png 375KB
vgg16.png 187KB
merge_model.png 61KB
loss.png 49KB
29.png 44KB
45.png 44KB
31.png 44KB
28.png 44KB
49.png 44KB
43.png 44KB
54.png 44KB
30.png 44KB
19.png 44KB
10.png 44KB
9.png 44KB
3.png 44KB
48.png 44KB
36.png 44KB
55.png 44KB
35.png 44KB
53.png 44KB
12.png 44KB
40.png 44KB
61.png 44KB
46.png 44KB
共 165 条
- 1
- 2
资源评论
- weixin_6378540012024-05-29这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
MarcoPage
- 粉丝: 3113
- 资源: 3467
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HTML5小游戏【阳光高尔夫球-优秀H5小游戏合集】游戏源码分享下载 - golfblast.zip
- 二层半独栋别墅结构水电施工图结构施工图.dwg
- 数据结构,常用的数据结构
- 某三层别墅建筑施工图编号D061-三层-12.54&12.24米-施工图.dwg
- 某三层别墅施工图带效果图D060-三层-23.04&15.39米- 施工图.dwg
- 流水灯,8个灯,不同花样
- TikTokPlugin-1.39-for-rezvorck.apk
- 某三层豪华型别墅建筑施工图D059-三层-27.00&16.00米- 施工图.dwg
- 11111111111111111111
- process-data-final.c
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功