Mach-O文件代码保护方案
摘要 | 第5-6页 |
Abstract | 第6页 |
第1章 绪论 | 第9-14页 |
1.1 课题研究背景 | 第9-11页 |
1.2 研究内容 | 第11-12页 |
1.3 论文组织结构 | 第12-14页 |
第2章 iOS系统架构和安全机制 | 第14-22页 |
2.1 iOS系统的安全性 | 第14页 |
2.2 iOS的系统架构 | 第14-15页 |
2.3 iOS安全机制 | 第15-18页 |
2.3.1 安全沙箱机制 | 第15页 |
2.3.2 签名认证机制 | 第15-16页 |
2.3.3 地址随机化机制 | 第16-17页 |
2.3.4 数据保护机制 | 第17-18页 |
2.4 iOS越狱机制分析 | 第18-20页 |
2.4.1 缓冲区溢出 | 第18-19页 |
2.4.2 越狱机制 | 第19-20页 |
2.5 越狱后代码保护的必要性 | 第20-21页 |
2.6 本章小结 | 第21-22页 |
第3章 代码保护技术和软件调试技术 | 第22-33页 |
3.1 代码保护技术 | 第22-27页 |
3.1.1 代码混淆技术 | 第22-24页 |
3.1.2 数字签名 | 第24-26页 |
3.1.3 可执行文件加壳保护 | 第26页 |
3.1.4 动态监测代码 | 第26-27页 |
3.2 反调试技术 | 第27-31页 |
3.2.1 抗静态分析技术 | 第27-28页 |
3.2.2 抗动态调试技术 | 第28-31页 |
3.3 本章小结 | 第31-33页 |
第4章 Mach-O代码保护设计方案 | 第33-42页 |
4.1 加密算法 | 第33-35页 |
4.1.1 加密算法的选择 | 第33-34页 |
4.1.2 Mach-O加密算法实现 | 第34-35页 |
4.1.3 加密算法安全性分析 | 第35页 |
4.2 加壳模块 | 第35-37页 |
4.2.1 UPX加壳流程 | 第36-37页 |
4.3 Mach-O文件代码安全挑战 | 第37-41页 |
4.3.1 Mach-O可执行文件 | 第38-39页 |
4.3.2 添加代码到Mach-O可执行程序 | 第39-40页 |
4.3.3 Mach-O文件编译 | 第40-41页 |
4.4 本章小结 | 第41-42页 |
第5章 Mach-O代码保护方案实现 | 第42-58页 |
5.1 问题提出 | 第42页 |
5.2 开发环境 | 第42-43页 |
5.3 MFP代码保护方案 | 第43-52页 |
5.3.1 反调试模块 | 第43-45页 |
5.3.2 加壳流程和stub代码生成细节 | 第45-47页 |
5.3.3 UPX加壳程序 | 第47-48页 |
5.3.4 生成Mach-O头信息 | 第48-49页 |
5.3.5 LZW压缩算法 | 第49-51页 |
5.3.6 MFP加密算法 | 第51页 |
5.3.7 stub代码生成 | 第51页 |
5.3.8 添加壳信息 | 第51-52页 |
5.4 效果分析 | 第52-56页 |
5.5 本章小结 | 第56-58页 |
结束语 | 第58-59页 |
参考文献 | 第59-61页 |
攻读学位期间发表论文与研究成果清单 | 第61-62页 |
致谢 | 第62页 |