iOS应用安全学习——文件结构
iOS应用安全学习—文件结构
此章节主要梳理了iOS的重要文件路径和Math-O文件格式相关知识点
iOS系统目录
UNIX传统目录
/bin
/boot
/dev
/etc —— 符号链接,指向/private/etc
/lib —— iOS中为空
/mnt —— iOS中为空
/sbin
/tmp —— 符号链接,指向/private/var/tmp
/usr
/var
iOS特有目录
- /Application —— 此路径是越狱商店安装APP的路径,从APP Store下载的程序安装在
/var/mobile/Containers/Bundle/Application
- /Developer
- /Library
- /System —— 是系统中最重要的目录
- /User
iOS沙盒结构
沙盒(Sanbox)是把应用程序生成和修改的文件重定向到自身文件夹中。在沙盒机制下,每个程序之间的文件夹不能互相访问。iOS采用该机制。
iOS应用程序在安装时会创建属于自己的沙盒文件,沙盒根目录下有三个文件夹。分别为
- Document —— 存放应用程序的数据
- Library
- Preferences
- Caches
- tmp
iOS应用结构
Payload —— 存放.app文件夹,是真正的包内容
XXX.app
Info.plist
- Bundle identifier
- Executable file —— 该参数所对应的可执行文件就是目标文件,也就是逆向工程所针对的
*.lproj —— 存放本地化的字符串(.strings),是逆向工程寻找切入点的途径之一
资源文件
Frameworks —— 当前应用中使用的一些第三方框架或Swift动态库
PlugIns —— 当前应用的扩展文件
Watch —— 如果当前应用支持Apple Watch,则会有此文件夹及对应的应用
Mach-O 文件格式
// TODO