Straw's B1og.

ios学习篇(2)

字数统计: 483阅读时长: 1 min
2024/04/18

ios学习篇(2)

ipa文件结构

​ ipa以压缩包的形式打开后进入payload中会有很多的文件存在,我们如何进行有效的辨别每个文件是什么,以快速找到对于逆向最有用二进制文件呢,先从ipa的结构入手。

​ 本文章将以一个开源的社交app为例子进行简单介绍

1

Info.plist

​ Info.plist是一个应用的相关配置文件(类似于android的AndroidManifest.xml)

​ 可以用plist Editor来查看大致的相关配置信息,当然用vscode看也行不过比较难看

2

3

​ 后面还涉及一些权限啥的配置,不展开细讲

_CodeSignature

  • ipa包签名文件的存放文件夹

.Iproj

  • App所支持的语言文件

Plugins

  • 插件

4

​ 每个插件里的结构也类似

Frameworks

  • 当前应用使用的三方 Framework 或 Swift 动态库

    5

Source

  • 资源文件

Assets.car

  • Assets.xcassts在编译过程中生成的最终展示文件,默认里面存放各种分辨率图片

.bundle

  • 调用一些其他的资源项目包

该文件多的话,会非常难逆

mach-o

6

根据Info.plist里找,这就是就是我们需要进行逆向的文件

.nib

.nib 文件是二进制的 plist 文件,其中保存了应用程序中 GUI 组件的位置信息和设置信息。这些文件是通过 Xcode 的 Interface Builder 创建的。Interface Builder 编辑.xib 文件的文本版本,然后再将这些文件打包成二进制格式。

.storyboardc

  • 模块化UI文件

其他资源文件

1
2
3
4
5
6
7
8
9
10
.xml、.json
.plist:项目中使用资源的.plist文件
.conf:相关的配置文件
.cer、.der、.p12:钥匙串文件
.wav:音频文件
.js、.html
.nib:Xcode自带的数据文件,包含一个窗口程序和应用程序委托对象
.sqlite:数据库文件
.txt:文本文件
.mom:Xcode创建的数据模型文件
CATALOG
  1. 1. ios学习篇(2)
    1. 1.1. ipa文件结构
      1. 1.1.1. Info.plist
      2. 1.1.2. _CodeSignature
      3. 1.1.3. .Iproj
      4. 1.1.4. Plugins
      5. 1.1.5. Frameworks
      6. 1.1.6. Source
      7. 1.1.7. Assets.car
      8. 1.1.8. .bundle
      9. 1.1.9. mach-o
      10. 1.1.10. .nib
      11. 1.1.11. .storyboardc
      12. 1.1.12. 其他资源文件