# 基于卷积神经网络的恶意软件检测方法
## 项目结构
```
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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
人工智能项目资料-基于卷积神经网络的恶意软件检测方法.zip (164个子文件)
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
40.png 44KB
49.png 44KB
19.png 44KB
54.png 44KB
31.png 44KB
30.png 44KB
10.png 44KB
35.png 44KB
36.png 44KB
28.png 44KB
3.png 44KB
48.png 44KB
9.png 44KB
43.png 44KB
12.png 44KB
55.png 44KB
45.png 44KB
53.png 44KB
29.png 44KB
51.png 44KB
34.png 44KB
63.png 44KB
共 164 条
- 1
- 2
资源评论
普通网友
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 1731260448754.jpeg
- 博图 博途1s保护解除DLL Siemens.Automation.AdvancedProtection.dll
- 基于Java和Shell语言的csj_21_08_20_task1设计源码分享
- 基于Typescript和Python的MNIST卷积神经网络模型加载与预测浏览器端设计源码
- 基于Python的RasaTalk语音对话语义分析系统源码
- 基于Vue框架的租车平台前端设计源码
- 基于Java和C/C++的浙江高速反扫优惠券码830主板设计源码
- 基于Java的一站式退休服务项目源码设计
- 基于Java语言实现的鼎鸿餐厅管理系统设计源码
- 基于Java的iText扩展库:简化PDF创建与中文字体应用设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功