转载

《iOS应用逆向工程》笔记1

1、iOS目录结构

iOS是又OSX演化而来,OSX是基于UNIX操作系统。

FHS(Filesystem Hierarchy Standard) 为类UNIX操作系统的文件目录结构指定了一套标准。

类UNIX操作系统目录结构

  • / :根目录,所有文件和目录在根目录下展开
  • /bin : “binary”简写,存放提供用户级基础功能的二进制文件,如ls、ps
  • /boot : 存放能使系统成功启动的所有文件。
  • /dev : “device”简写,存放BSD设备文件。
  • /sbin : “system binaries”简写,存放提供系统级基础功能的二进制文件,如netstat、reboot等
  • /etc : “Et Cetera”简写,放系统脚本及配置文件。
  • /lib : 存放系统库文件、内核模块及设备驱动
  • /mnt :”mount” 简写,存放临时的文件系统挂载点。
  • /private :存放/private/etc和/private/var
  • /tmp :临时目录。
  • /usr: 包含大多数用户工具和程序。

iOS目录

  • /Applications : 存放所有系统App和来自Cydia的App
  • /Developer : 如果一台设备连接Xcode后被指定为调试机,Xcode就会在iOS中生成这个
  • /Library : 存放一些提供系统支持的数据
  • /System/Library : 存放大量系统组件。
  • /System/Library/PrivateFrameworks : 存放iOS的各种framework.
  • /User : 用户目录,实际指向/var/mobile。
  • /var/mobile/Containers : 存放StoreApp.
    • App 可执行文件在bundle于App中的数据目录被分别存放在/var/mobile/Containers/Bundle 和 /var/mobile/Containers/Data这两个不同目录下面

二进制文件类型

bundle : 按某种标准结构来组织的目录,包含了二进制文件及运行所需的资源

framework : 也是bundle,但是framework的bundle中存放的是一个 dylib ,而不是可执行文件。

App目录结构

  • Info.plist : 记录了App的基本信息,如bundle identifier、可执行文件名、图标文件名等。
  • 可执行文件 : 一般都是项目名字
  • lproj : 存放各种本地化的字符串

沙盒

一种访问限制机制、权限的一种表现形式。授权文件( entitlements )是沙盒的一部分。

Daemon(守护进程、后台程序)

问题: iOS中没有真正的后台任务?

  • 正在使用app,电话来了会中断当前的所有操作,将电话界面呈现在面前
  • 垃圾短信的拦截,如果没有守护进程,怎么实时处理过滤每一条短信

其实按下home键,进程进入后台了,大多数功能会被暂停。

正文到此结束
Loading...