面向可执行程序的代码混淆技术研究与实现
摘要 | 第1-11页 |
ABSTRACT | 第11-13页 |
第一章 绪论 | 第13-20页 |
·课题研究背景 | 第13-16页 |
·软件著作权益损害 | 第13-14页 |
·针对可执行程序的恶意逆向工程 | 第14-15页 |
·面向软件保护的代码混淆 | 第15-16页 |
·课题选题依据 | 第16页 |
·代码混淆技术研究现状 | 第16-17页 |
·本文主要工作 | 第17-18页 |
·章节组织 | 第18-20页 |
第二章 软件逆向工程与保护技术 | 第20-29页 |
·二进制程序分析 | 第20-22页 |
·程序分析的一般方法 | 第20-21页 |
·静态分析技术 | 第21页 |
·动态分析技术 | 第21-22页 |
·二进制分析与代码混淆 | 第22页 |
·软件逆向工程 | 第22-23页 |
·软件保护技术 | 第23-28页 |
·软件保护的原则 | 第23-24页 |
·硬件辅助保护 | 第24-25页 |
·基于验证的保护 | 第25-26页 |
·防篡改技术 | 第26页 |
·软件水印 | 第26-27页 |
·软件加密 | 第27页 |
·代码混淆 | 第27-28页 |
·本章小结 | 第28-29页 |
第三章 代码混淆技术 | 第29-37页 |
·代码混淆概念 | 第29-30页 |
·混淆变换的有效性评价 | 第30-32页 |
·强度 | 第31页 |
·弹性 | 第31-32页 |
·耗费 | 第32页 |
·隐蔽性 | 第32页 |
·代码混淆分类 | 第32-36页 |
·布局混淆 | 第33-34页 |
·数据混淆 | 第34页 |
·控制混淆 | 第34-35页 |
·预防性混淆 | 第35-36页 |
·高级混淆变换技术 | 第36页 |
·反混淆 | 第36页 |
·本章小结 | 第36-37页 |
第四章 面向可执行程序的混淆变换方法 | 第37-58页 |
·PE 文件格式的可执行程序 | 第37-41页 |
·可执行程序 | 第37-38页 |
·PE 文件格式 | 第38-41页 |
·软件反汇编技术 | 第41-43页 |
·线性扫描反汇编 | 第41-42页 |
·递归下降反汇编 | 第42-43页 |
·子程序入口与返回地址隐藏 | 第43-47页 |
·call 指令目标地址隐藏 | 第44-45页 |
·call 指令后插入代码 | 第45-46页 |
·ret 指令变形 | 第46-47页 |
·分支跳转指令的混淆变换 | 第47-51页 |
·无条件跳转指令增加 | 第48页 |
·条件跳转指令变换 | 第48-50页 |
·跳转分支隐藏 | 第50-51页 |
·函数粒度的加密混淆变换 | 第51-57页 |
·段粒度的代码加密变换方法 | 第51-52页 |
·函数粒度的代码加密变换方法 | 第52-53页 |
·加密深度的形式化定义 | 第53-56页 |
·算法描述 | 第56-57页 |
·本章小结 | 第57-58页 |
第五章 可执行程序混淆变换框架PEobf | 第58-75页 |
·PEobf 的总体设计 | 第58-59页 |
·反汇编模块的设计 | 第59-63页 |
·基本信息检查模块 | 第59-60页 |
·基于混合技术的静态反汇编引擎 | 第60-63页 |
·二进制信息获取模块 | 第63-67页 |
·构建基本块信息 | 第64-65页 |
·构建函数调用迹 | 第65-67页 |
·混淆变换模块 | 第67-73页 |
·子程序入口与返回地址隐藏方法的实现 | 第67-70页 |
·分支跳转指令混淆方法的实现 | 第70-72页 |
·函数粒度加密混淆方法的实现 | 第72-73页 |
·输出模块 | 第73-74页 |
·本章小结 | 第74-75页 |
第六章 实验实现与结果评价 | 第75-81页 |
·实验环境与界面展示 | 第75-76页 |
·混淆变换的实验步骤与结果 | 第76-78页 |
·有效性分析与性能评价 | 第78-80页 |
·混淆变换的有效性 | 第78-80页 |
·性能分析 | 第80页 |
·本章小结 | 第80-81页 |
结束语 | 第81-83页 |
工作总结 | 第81-82页 |
工作展望 | 第82-83页 |
致谢 | 第83-84页 |
参考文献 | 第84-88页 |
在读硕士期间取得的学术成果 | 第88页 |