iOS 应用逆向开发笔记

一. 系统目录

(1)类 UNIX 操作系统的常见目录结构如下所示:

  1. /: 根目录, 以斜杠标识, 其他所有文件和目录在根目录下展开
  2. /bin: “binary” 的简写, 存放提供用户级基础功能的二进制文件, 如 ls  ps 等
  3. /boot: 存放能使系统成功启动的所有文件, iOS 中此目录为空
  4. /dev: “device” 的简写, 存放 BSD 设备文件. 每个文件代表系统的一个块设备或字符设备, 一般来说, “块设备” 以块为单位传输数据, 如硬盘; 而 ”字符设备” 以字符为单位传输数据, 如调制解调器
  5. /sbin: “system binaries” 的简写, 存放提供系统级基础功能的二进制文件, 如 netstat reboot 等
  6. /etc: “Et Cetera” 的简写,  存放系统脚本及配置文件, 如 passed hosts 等. 在 iOS 中, /etc 是一个符号链接, 实际指向 /private/etc
  7. /lib: 存放系统库文件 内核模块及设备驱动等. iOS 中此目录为空
  8. /mnt: "mount" 的简写, 存放临时的文件系统挂载点. iOS 中此目录为空
  9. /private: 存放两个目录, 分别是 /private/etc 和 /private/var
  10. /tmp: 临时目录. 在 iOS 中, /tmp 是一个符号链接, 实际指向 /private/var/tmp
  11. /user: 包含了大多数用户工具和程序. /user/bin 包含哪些 /bin 和 /sbin 中未出现的基础功能, 如 nm killall 等; /user/include 包含所有的标准 C 头文件; /user/lib 存放库文件
  12. /var: "variable" 的简写, 存放一些经常更改的文件, 比如日志 用户数据 临时文件等. 掐中 /var/mobile 和 /var/root 分别存放了 mobile 用户和 root 用户的文件, 是重点关注的目录

 

(2)日常操作所对应的功能模块大多来自 iOS 独有的目录, 如下所示:

  1. /Application: 存放所有的系统 App 和来自于 Cydia 的 App, 不包括 StoreApp
  2. /Developer: 如果一台设备连接 Xcode 后被指定为调试机, Xcode 会在 iOS 中生成这个目录, 其中会含有一些调试需要的工具和数据
  3. /Library: 存放一些提供系统支持的数据. 其中 /Library/MobileSubstrate 下存放了所有基于 Cyduasujbstrate (原名 MobileSubstrate) 的插件
  4. /System/Library: iOS 文件系统中最重要的目录执意, 存放大量系统组件
  5. /System/Library/Frameworks 和 /System/Library/PrivateFrameworks: 存放 iOS 中的各种 framework, 其中出现在 SDK 文档里的只是冰山一角, 还有数不清的未公开功能等待我们去挖掘
  6. /System/Library/CoreServices 里的 SpringBoard.app: iOS 桌面管理器 (类似于 Windows 里的 explorer), 是用户与系统交流的最重要中介
  7. /User: 用户目录, 实际指向 /var/Mobile, 这个目录里存放大量用户数据, 比如 var/mobile/Media/DCIM 下存放照片; var/mobile/Media/Recording 下存放录音文件; var/mobile/Library/SMS 下存放短信数据库; var/mobile/Library/Mail 下存放邮件数据
  8. /var/mobile/Containers 是另外一个非常重要的子目录, 存放 StoreApp. 值得注意的是, App 的可执行文件在 bundle 与 App 中的数据目录被分别存放在 /var/mobile/Containers/Bundle 和 /var/mobile/Containers/Data 这两个不同目录下

 

二. 逆向开发试用到的工具

(1) OSX 工具

Class-dump / Theos / Reveal / IDA

  1. Class-dump: 用来 dump 目标对象的 class 信息的工具, 利用 Objective-C 语言的 runtime 特性, 将存储在 Mach-O 文件中的头文件信息提取出来, 并生成对应的 .h 文件. 下载地址:http://stevenygard.com/projects/class-dump/ 
  2. Theos: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值