毕设随记,防止遗忘 🐱👓
技术路线选择&架构设计
构建数据集(2022.3.19完成)
训练模型(2022.4.10完成)
模块整合&界面(04.23:发现Ubuntu是32位的,没法安Tensorflow,只能重新搭建环境,工期++)
系统部署到Ubuntu(04.26完成)
系统测试与优化
写论文
-
/cuckoo_report_analyzer (生成API调用数据集)
/report 集中保存cuckoo产生的报告,格式[num]_report.json
/storage 集中保存split_reports.py处理的结果process.json,每个文件保存在以[exe_name]命名的子文件夹下
move_report.py 收集(批量移动到/report)cuckoo SandBox运行样本产生的报告report.json
main.py 处理单个report.json,从中分出process.json到./storage/[exe_name]/文件夹
split_reports.py 批量处理report.json,从中分出process.json到./storage/[exe_name]/文件夹
-
/api_reader (生成API调用数据集)
api.csv 保存api函数与数字的对应关系,用以索引
LIST.TXT 存放样本的名称,用来生成process.json文件路径
本文件产生方式:
# 在/cuckoo_report_analyzer/storage/目录下
DIR *.* /B >LIST.TXT
# 然后手动删除LIST.TXT中的“LIST.TXT”和“test.bat”
# 复制LIST.TXT到/api_reader
**main.py** 将LIST.TXT列举的文件夹中的json文件提取为索引好的api数字序列,保存到test_test.csv中
**main_1.py** 以xx.exe为参数,可以输出索引好的api数字序列,并保存到csv文件
-
/classification_api(训练模型A时使用)
/archive/dynamic_api_call_sequence_per_malware_100_0_306.csv
数据集,格式:hash, api_num[0:99], if_malware
behavioral-malware-detection-with-cnn-lstm.ipynb
jupyter notebook运行,注意修改数据集路径
behavioral-malware-detection-based-on-api-calls_model.h5
保存训练好的模型
newer-api-calls_model.h5
最新保存训练好的模型,据测试具有良好的效果
-
/classification_traffic(训练模型B时使用)
使用王伟创建的数据集及配套工具,生成对应图片数据
https://github.com/echowei/DeepTraffic
修改train.ipynb文件中数据路径
-
predict_api.py(使用模型A进行预测)
输入:processes.json文件路径
输出:预测的结果
- predict_traffic.py(使用模型B进行预测)
输入:流量图片路径
输出:预测的结果
- main.py
系统界面,在windows测试可行
- main_ubuntu.py
适合Ubuntu的系统界面,
和main.py的区别是文件路径不同,以及可以动态调用cuckoo
- log.csv 日志文件
- temp.csv 临时文件,作为读API和输入模型的中转