ios学习篇(2)
ipa文件结构
ipa以压缩包的形式打开后进入payload中会有很多的文件存在,我们如何进行有效的辨别每个文件是什么,以快速找到对于逆向最有用二进制文件呢,先从ipa的结构入手。
本文章将以一个开源的社交app为例子进行简单介绍
Info.plist
Info.plist是一个应用的相关配置文件(类似于android的AndroidManifest.xml)
可以用plist Editor来查看大致的相关配置信息,当然用vscode看也行不过比较难看
后面还涉及一些权限啥的配置,不展开细讲
_CodeSignature
- ipa包签名文件的存放文件夹
.Iproj
- App所支持的语言文件
Plugins
- 插件
每个插件里的结构也类似
Frameworks
当前应用使用的三方 Framework 或 Swift 动态库
Source
- 资源文件
Assets.car
- Assets.xcassts在编译过程中生成的最终展示文件,默认里面存放各种分辨率图片
.bundle
- 调用一些其他的资源项目包
该文件多的话,会非常难逆
mach-o
根据Info.plist里找,这就是就是我们需要进行逆向的文件
.nib
.nib 文件是二进制的 plist 文件,其中保存了应用程序中 GUI 组件的位置信息和设置信息。这些文件是通过 Xcode 的 Interface Builder 创建的。Interface Builder 编辑.xib 文件的文本版本,然后再将这些文件打包成二进制格式。
.storyboardc
- 模块化UI文件
其他资源文件
1 | .xml、.json |