【 基础篇 】
1. ARM 汇编语言。
书籍资料:
《ARM体系结构与编程》杜春雷
苹果官方的参考资料《ARM® Architecture Reference Manual Extracts Including instruction set descriptions.pdf》
2. 嵌入式硬件相关知识。
能容易地看懂附件里的iPhone4手机的原理图(iphone4原理图.pdf),
分析、阅读Openiboot的源代码(https://github.com/iDroid-Project/openiBoot)也能更快理解。
实现了在ARM开发板上移植编译运行uC/OS2。
3.
Unix基本知识。
掌握Unix的常用命令让你能更好地操作iOS设备,像查找文件、建立、删除目录、用户管理等等命令。
还有iOS下的调试工具是gdb,不管用户态还是内核态的。
推荐参考资料为附件里的gdb quick reference.pdf。
4. iOS SDK编程。
很多功能都是通过调用iOS系统提供的接口来实现的,推荐参考资料为:Beginning.iOS.5.Development.Exploring.the.iOS.SDK.David.Mark.Jack.Nutting.Jeff.LaMarche.pdf
Programming.iOS.4.Matt.Neuburg.pdf。
【 入门篇 】
iOS系统启动过程简述;
iOS的固件结构概述和解压解密分析;
Bootrom的提取(dump)及所用的代码分析;
iBoot解密和加载内核功能的分析;
iOS应用程序的编写;
iOS应用程序的调试与分析;
iOS应用程序的注入与hook实例;
【 进阶篇 】
为了进行更深入的研究,我们先学会调试iOS内核。
如何进行iOS内核调试( http://bbs.pediy.com/showthread.php?t=157624
);
在mac上编译xnu for mac内核;
我们学习研究Linux内核时是从编译Linux内核开始的,是由于iOS内核和Mac上的os x内核具有很大的相似性(都是采用XNU的内核),为了进一步调试分析研究iOS,我们从可以从编译XNU内核开始。编译好后我们可以通过对比Mac os x的内核来学习iOS内核。
limera1n漏洞原理分析;
绿毒代码分析之cyanide代码分析;
绿毒代码分析之syringe代码分析;
如何调用aes gid引擎获取iOS固件的解密key;
【 高级篇 】
这里介绍一些高级主题,如已知公开的漏洞分析,越狱的实现的原理;iOS内核分析如系统调用、中断处理、内存管理等功能。
4.1 JailBreakMe3.0漏洞(用户态)分析;
4.2 JailBreakMe3.0漏洞(内核态)分析;
4.3 iOS系统从用户态进入内核态及返回(系统调用)的分析;
4.4 iOS如何利用ARM的MMU进行地址映射;
4.5 如何在内核态运行自定义代码(如hook)——data代码分析;
4.6 如何在内核态运行自定义代码(如hook)——white代码分析;