什么是IPA
“ipa后缀的文件是iOS系统的软件包,全称为iPhone application archive.通常情况下,ipa文件都是使用苹果公司的FairPlay DRM技术进行加密保护的。每个IPA文件都是ARM架构的可执行文件以及该应用的资源文件的打包文件,只能安装在iPhone,iPod Touch 或iPad上。该文件可以通过修改后缀名为zip后,进行解压缩,查看其软件包中的内容。 ”
脱壳
经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳(脱壳)
其实就是经过加密的,这个“砸壳”的过程就是一个解密的过程
"砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解密的过程
未砸壳的App是无法在Class-dump、Hopper等工具中使用的
info.plist文件
IPA文件有一个很重要的文件Info.plist 就类似于Android程序的Manifest.xml,只要能够从IPA文件中提取出来Info.plist,然后在进行解析提起相关信息
权限和权限描述
CFBundleName:app名称:这个是程序安装之后,显示在iPhone/iPad上的名字
CFBundleDisplayName:应用展示的名称
CFBundleIdentifier:ipa包名:应用的唯一标识,是用来发布到App store 用的
CFBundleVersion:版本号:项目版本号,对内公布,不对外公布。
MinimumOSVersion:应用所需IOS最低版本
# 声明权限和权限描述
<key>NSPhotoLibraryUsageDescription</key>
<string>如果不允许,您将无法设置头像,也无法发送相册里的照片。</string>
<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>
Java 解析 IPA 文件,读取 Info.plist 信息
参考文章:https://my.oschina.net/heweipo/blog/382942
iOS逆向工程之App脱壳
参考:https://www.cnblogs.com/ludashi/p/5725743.html