美文网首页
iOS逆向之文件系统结构

iOS逆向之文件系统结构

作者: 木子心语 | 来源:发表于2019-12-18 00:06 被阅读0次
  • 上一篇文章地址:iOS逆向之介绍
  • 上一篇文章中,介绍了iOS逆向做了些什么,需要怎样的防护,逆向的流程,提到的工具.
  • 本篇将要以文件系统结构开篇,带大家了解文件系统结构.
  • 欢迎大家留言,当然你也可以加群交流.

1.系统文件结构

  • 系统文件

在手机终端执行uname -a 命令,终端可以在cydia中安装MTerminal插件.
执行命令后,可以看到iOS系统基于Darwin Kernel的,而Darwin Kernel是一种UNIX-like操作系统.

  • 文件目录
    在越狱设备上,可视化方式查看iOS系统文件

  • 相对于一般的iOS开发者来说,可能对iOS系统结构一无所知.因为权限低,App不能访问自身以外的绝大多数文件.

  • iOS一旦越狱,就可以拥有更高的root权限,从而访问全系统文件.

  • 如何查看文件目录?

1.在MacOS上可以安装itools,itools下载地址

itools.png

2.在MacOS上也可以安装iFunBox,iFunBox下载地址

iFunBox.png

3.在iOS越狱设备Cydia中安装iFile(如果要访问越狱设备的文件系统,需要打开Cydia,安装Apple File Conduit "2")

Apple File Conduit "2".jpg

4.可以通过SSH远程登录iOS来查看,汇编逆向工具集(二),文章中有介绍,如何通过ssh远程登录,Cydia中使用到了OpenSSH插件.详情请看文章汇编逆向工具集(二)

  • 文件目录结构
    • iOS是OSX演化而来的,而OSX则是基于UNIX操作系统的.
    • Filesystem Hierarchy Standard (文件系统层次化标准简称FHS),FHS为类UNIX操作系统的文件目录结构指定了一套标准,目的是让用户预知文件或目录的存放位置.

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

UNIX操作系统(iOS逆向之文件系统结构).png

上图目录中的内容多用于系统底层.

下面接着介绍iOS的独有目录.

Application 存放所有的系统App和来自于Cydia的APP,不包括APPStore下载的App.
Developer:供开发者使用
Library: 系统资源,用户设置
- Logs是系统日志
- Ringtones是系统自带铃声
- Launch Daemons是启动daemon程序
- MobileSubstrate,里面存放了所有基于Cydia Substrate的插件
System:系统的重要组成部分
- /System/Library/Carrier Bundles里面是运营商的一些配置
- /System/Library/Frameworks;/System/Library/PrivateFrameworks里面
是系统中各种公开与未公开的Framework
- /System/Library/CoreServices里的SpringBoard.app是桌面管理器,是用
户和系统直接交互的中介.
- /System/Library/PerferenceBundles里面存放的系统设置中的一些设置项.
User:用户目录,实际指向/var/mobile
- 这个目录里存放大量用户数据
- /User/Media/里面存放的是相册等
- /User/Library/里面存放的是短信,邮件等
- /var/mobile/Media/DCIM下存放照片
- /var/mobile/Media/Recordings下存放录音文件
- /var/mobile/Library/SMS 下存放短信数据库
- /var/mobile/Library/Mail 下存放邮件数据
- /var/mobile/Containers,存放AppStore下载的app,App的可执行文件在bundle与App中的数据目录被分别存放在
/var/mobile/Containers/Bundle
和/var/mobile/Containers/Data
bin:存放用户级二级制文件
- 比如mv,ls等
dev:设备文件
- 每个设备在/dev目录下都有一个对应的文件
etc:存放系统脚本,hosts配置,SSH配置文件等
sbin:存放系统级二进制文件
比如reboot,mount等
usr:用户工具和程序
- /usr/include存放标准C头文件
- /usr/lib中存放库文件
var:一些经常改动的文件
- 钥匙串keychains,临时文件,从AppStore下载的应用.
  • iOS应用的沙盒目录

1.Application Bundle包含应用可执行文件和资源文件

如果获取应用的Bundle路径,可以通过ps -e | grep appname 查看应用的Bundle路径

2.Applicaiton Data 包含APP运行产生的数据和配置信息

如果获取应用的Data路径,可以通过Cycript工具
cycript  -p 应用名
cy# directory = NSHomeDirectory()
@"/var/mobile/Containers/Data/Application/xx"

3.Data目录结构

1.Document 存放应用运行时生成的并且需要保存的数据。注:iTunes或iCloud同步设备时会备份该目录

2.Library/Caches 存放应用运行时生成的并且需要保存的数据。iTunes或iCloud不同步。

3.Library/Preferences 存放偏好设置。iOS的偏好设置(settings)应用
也会在该目录查找应用的设置信息。NSUserDefaults保存在该目录下。
iTunes或iCloud同步设备时备份该目录。

4.tmp存放应用运行时所需的临时数据。当某个应用没运行时,iOS系统可能会清除该目录下的文件。
但不可依赖这种自动清除机制,应该及时手动清除。

2.总结

以上内容是对iOS系统文件结构的介绍.
下一篇文章将要对iOS系统文件的权限进行介绍.

相关文章

  • iOS逆向学习

    参考文章:iOS逆向开发记录:iOS逆向之手机越狱iOS逆向之介绍iOS逆向之文件系统结构iOS逆向之文件权限及类...

  • iOS逆向之文件权限及类型

    上一篇文章地址:iOS逆向之文件系统结构 上一篇文章已经介绍iOS系统文件目录结构 这已经是第四篇文章,前期主要介...

  • iOS逆向之文件系统结构

    上一篇文章地址:iOS逆向之介绍 上一篇文章中,介绍了iOS逆向做了些什么,需要怎样的防护,逆向的流程,提到的工具...

  • iOS逆向之反HOOK的基本防护

    iOS逆向之Method Swizzle iOS逆向之fishHook原理探究 iOS逆向之fishHook怎么通...

  • iOS逆向之文件系统

    前言 作为一名iOS开发者,长期以来和MacOS、iOS系统打交道,对iOS和MacOS系统并不陌生。在开发中,我...

  • iOS 逆向-反逆向_基础

    iOS逆向需要具备的能力: 非常熟悉iOS设备的硬件结构 iOS的运行原理 1年以上的iOS开发经验 iOS逆向论...

  • iOS逆向工程 -- 看图层的工具

    iOS逆向 Reveal FLEXLoader 图层结构 提要 对于iOS逆向,在我们拿到解密后的可执行文件后,我...

  • 一 iOS 逆向工程概述

    1 什么是iOS逆向工程 2 iOS逆向的目的 3 iOS逆向过程以及方法 一 什么是iOS逆向工程 iOS逆向...

  • 3. iOS文件系统结构

    iOS文件系统结构 可视化方式查看iOS系统文件在iOS通过Cydia安装Apple File Conduit 2...

  • iOS逆向之使用ida (伪代码 静态分析项目)

    iOS逆向之静态分析项目的意义: 1 、了解文件结构:包的构成,以及文件结构里面的内容。2、文件二进制:对文件二进...

网友评论

      本文标题:iOS逆向之文件系统结构

      本文链接:https://www.haomeiwen.com/subject/fvqugctx.html