摘要 | 第4-5页 |
Abstract | 第5页 |
第1章 绪论 | 第12-18页 |
1.1 引言 | 第12页 |
1.2 研究背景与意义 | 第12-15页 |
1.2.1 源程序和二进制程序分类的意义 | 第12-13页 |
1.2.2 现有研究方法与不足 | 第13-14页 |
1.2.3 浅层模型的局限性与深层模型的优势 | 第14页 |
1.2.4 程序分析和深层模型融合的必要性 | 第14-15页 |
1.3 研究目标与内容 | 第15-16页 |
1.4 文章组织和结构 | 第16-17页 |
1.5 本章小结 | 第17-18页 |
第2章 程序分类相关研究综述 | 第18-35页 |
2.1 程序的表示与特征提取 | 第18-21页 |
2.1.1 基于程序度量元(Metrics) | 第18-19页 |
2.1.2 基于抽象语法树(Abstract Syntax Tree) | 第19-20页 |
2.1.3 基于程序流图(Graph) | 第20-21页 |
2.1.4 基于向量表示 | 第21页 |
2.2 源程序分类研究 | 第21-23页 |
2.2.1 机器学习方法 | 第21-22页 |
2.2.2 语言模型方法 | 第22页 |
2.2.3 深度神经网络方法 | 第22-23页 |
2.3 二进制程序分类研究 | 第23-25页 |
2.3.1 程序分析和机器学习方法 | 第24页 |
2.3.2 深度神经网络方法 | 第24-25页 |
2.4 深度神经网络概述 | 第25-34页 |
2.4.1 卷积神经网络(CNN) | 第26-29页 |
2.4.2 递归神经网络(RNN) | 第29-32页 |
2.4.3 激活函数和随机失活(Dropout) | 第32-34页 |
2.5 本章小结 | 第34-35页 |
第3章 基于双流卷积神经网络的源程序分类 | 第35-46页 |
3.1 问题描述 | 第35-36页 |
3.2 方法概览 | 第36页 |
3.3 不完整程序分析和信息提取 | 第36-41页 |
3.3.1 程序片段的导入和存储 | 第37-38页 |
3.3.2 程序分析信息的提取 | 第38-40页 |
3.3.3 程序数据的预处理 | 第40-41页 |
3.4 双流深度卷积神经网络模型 | 第41-45页 |
3.4.1 基本CNN程序分类网络结构 | 第41-42页 |
3.4.2 双流CNN程序分类网络结构 | 第42-43页 |
3.4.3 双流CNN程序分类网络实现 | 第43-45页 |
3.5 本章小结 | 第45-46页 |
第4章 基于分级递归神经网络的二进制程序分类 | 第46-57页 |
4.1 问题描述 | 第46-47页 |
4.2 方法概览 | 第47-48页 |
4.3 二进制程序的逆向和切分 | 第48-51页 |
4.3.1 二进制程序的逆向 | 第48-49页 |
4.3.2 基于CFG的二进制程序分割 | 第49-51页 |
4.3.3 十六进制程序和汇编程序的选择 | 第51页 |
4.4 分层LSTM模型 | 第51-56页 |
4.4.1 基本LSTM程序分类网络结构 | 第52页 |
4.4.2 分层LSTM程序分类网络结构 | 第52-53页 |
4.4.3 分层LSTM程序分类网络实现 | 第53-54页 |
4.4.4 分层LSTM网络的训练 | 第54-56页 |
4.5 本章小结 | 第56-57页 |
第5章 实验设计与结果分析 | 第57-81页 |
5.1 实验环境信息 | 第57-58页 |
5.2 对比方法与参数选择 | 第58-62页 |
5.2.1 N-Gram与TF-IDF | 第58-59页 |
5.2.2 机器学习方法 | 第59-60页 |
5.2.3 语言模型方法 | 第60-61页 |
5.2.4 深度神经网络方法 | 第61-62页 |
5.3 评价指标 | 第62-63页 |
5.4 基于双流卷积神经网络的源程序分类 | 第63-72页 |
5.4.1 源程序数据准备 | 第63-65页 |
5.4.2 源程序预处理方式对分类结果的影响 | 第65-66页 |
5.4.3 程序分析信息引入的有效性 | 第66-68页 |
5.4.4 不完整程序片段实验结果对比分析 | 第68-69页 |
5.4.5 完整程序实验结果对比分析 | 第69-71页 |
5.4.6 不同深度神经网络收敛速度对比 | 第71-72页 |
5.5 基于分级递归神经网络的二进制程序分类 | 第72-80页 |
5.5.1 编译优化选项简介 | 第72-73页 |
5.5.2 编译优化选项分类数据集准备 | 第73-74页 |
5.5.3 对比深度神经网络模型的实现 | 第74页 |
5.5.4 十六进制程序和汇编程序的选择 | 第74-75页 |
5.5.5 输入指令的长度和条数对分类效果的影响 | 第75-76页 |
5.5.6 不同编译优化选项准确度分析 | 第76-77页 |
5.5.7 与其他分类方法的对比分析 | 第77-79页 |
5.5.8 层次化神经网络收敛速度对比 | 第79-80页 |
5.6 本章小结 | 第80-81页 |
第6章 总结与展望 | 第81-84页 |
6.1 论文总结 | 第81-82页 |
6.2 研究展望 | 第82-84页 |
参考文献 | 第84-91页 |
攻读硕士学位期间主要的研究成果 | 第91-92页 |
致谢 | 第92页 |