二进制代码路径混淆技术研究
摘要 | 第1-7页 |
Abstract | 第7-13页 |
第一章 绪论 | 第13-33页 |
第一节 研究背景 | 第13-15页 |
第二节 软件保护技术 | 第15-18页 |
第三节 代码混淆技术 | 第18-27页 |
·代码混淆技术的分类 | 第21-25页 |
·代码混淆效果分析 | 第25-27页 |
第四节 路径敏感的MATE攻击 | 第27-30页 |
·路径信息泄露问题 | 第27页 |
·新型的 MATE 攻击 | 第27-30页 |
第五节 本文工作 | 第30-33页 |
第二章 基于未解数学猜想的路径混淆策略 | 第33-66页 |
第一节 研究背景和相关工作 | 第34-37页 |
·符号执行及其应用 | 第34-35页 |
·符号执行处理循环的局限性 | 第35页 |
·二进制代码混淆 | 第35-36页 |
·未解数学猜想 | 第36-37页 |
第二节 路径混淆策略 | 第37-39页 |
第三节 路径混淆的实现 | 第39-44页 |
·引入混淆变量 | 第40-41页 |
·选择未解数学猜想 | 第41-42页 |
·生成动态路径分支条件 | 第42-44页 |
第四节 路径混淆的模式变换 | 第44-50页 |
·多项式等价变换 | 第45-46页 |
·收敛值变换 | 第46页 |
·固定循环次数 | 第46-47页 |
·相似控制流变换 | 第47-50页 |
第五节 安全性测试 | 第50-64页 |
·逆向分析和推理方式 | 第50-51页 |
·逆向分析和推理的复杂度 | 第51-54页 |
·逆向分析和推理的准确度 | 第54-60页 |
·输入值相似度的空间分布规律 | 第60-64页 |
·局限性 | 第64页 |
第六节 小结 | 第64-66页 |
第三章 基于 CPU 指令副作用的路径混淆策略 | 第66-85页 |
第一节 引言 | 第66-67页 |
第二节 基于CPU指令副作用的路径混淆 | 第67-73页 |
·利用 CPU 指令隐式副作用混淆跳转条件 | 第69-72页 |
·不透明谓词 | 第72-73页 |
第三节 基于异常处理机制的隐式控制流转移 | 第73-79页 |
·Linux 操作系统的异常处理机制 | 第74-76页 |
·Windows 操作系统的异常处理机制 | 第76-77页 |
·基于异常处理机制的控制流转移 | 第77-79页 |
第四节 性能分析 | 第79-81页 |
·路径混淆的强度 | 第79-80页 |
·路径混淆的弹性 | 第80-81页 |
·路径混淆的开销 | 第81页 |
第五节 实验结果与分析 | 第81-84页 |
第六节 小结 | 第84-85页 |
第四章 基于单向保留前缀加密算法的路径混淆策略 | 第85-98页 |
第一节 单向函数 | 第85-88页 |
第二节 保留前缀算法 | 第88-91页 |
·前缀算法 | 第88-90页 |
·保留前缀的加密算法 | 第90-91页 |
第三节 基于单向保留前缀算法的路径混淆策略 | 第91-93页 |
第四节 安全性分析和性能测试 | 第93-97页 |
·安全性分析 | 第93-94页 |
·抗逆向分析效果 | 第94-95页 |
·软件开销测试 | 第95-97页 |
·讨论 | 第97页 |
第五节 小结 | 第97-98页 |
第五章 路径混淆系统的设计与实现 | 第98-121页 |
第一节 引言 | 第98-100页 |
第二节 路径混淆策略的性能分析 | 第100-107页 |
·应用范围 | 第101-104页 |
·强度 | 第104-105页 |
·弹性 | 第105-106页 |
·开销 | 第106页 |
·隐蔽性 | 第106-107页 |
第三节 路径混淆策略的优化算法 | 第107-110页 |
第四节 路径混淆系统的设计与实现 | 第110-112页 |
第五节 实验结果与分析 | 第112-120页 |
第六节 小结 | 第120-121页 |
第六章 总结与展望 | 第121-124页 |
第一节 本文工作总结 | 第121-122页 |
第二节 未来工作展望 | 第122-124页 |
参考文献 | 第124-132页 |
致谢 | 第132-133页 |
个人简历、博士期间完成的论文和参加的科研项目 | 第133-135页 |
个人简历 | 第133页 |
博士期间发表的论文 | 第133-134页 |
博士期间参加的科研项目 | 第134页 |
已获得信息安全领域的国家发明专利 | 第134-135页 |