DRM(Digital Rights Management),即:内容数字版权加密保护技术。放在苹果App Store上的所有应用均通过公钥进行加密保护,当应用在IOS系统上运行时,通过苹果公司的私钥进行内容解密。
通过静态反汇编工具IDA反编译具有DRM保护的应用时,IDA会自动识别目标已加密,如图:
点击上图中的“Yes”按钮, 经过加密的内容IDA是无法正常解析出类名和函数名的,如图:
经过实践证明,iOS脱壳之前需要提前做好以下准备:
脱壳的目标应用必须先安装到越狱手机上。
必须要拥有一个Apple ID,并使用该账号下载正版应用。
越狱手机安装完应用后运行一下APP,如果发生闪退现象, 需要重新安装, 如果运行应用需要输入Apple ID账号和密码,需要输入正确后方可执行破解流程。
以上任何一个操作不当,都有可能造成iOS应用脱壳失败,最好的方法是将Apple ID与手机绑定,如图:
苹果官方应用下载完成后,统一以”.ipa”为后缀, .ipa格式文件本质是一个Zip压缩包, 通过UE打开一个ipa格式包能够看到Zip头格式,如图:
将ipa格式包进行解压,可以发现该包主要由三个部分组成:名为Payload文件夹、iTunesArtwork和iTunesMetadata.plist。 Payload文件夹:该文件夹下有一个.app子文件夹,在该文件夹下包含应用主程序和所有的资源文件。 iTunesArtwork:该文件名称固定且无后缀,实质上是一个png图片文件,用来在iTunes中显示应用图标。iTunesMetadata.plist:该文件主要记录了购买者信息和售价等数据。层次关系图如下:
Deb格式是Debian系统专属安装包格式,配合APT软件管理系统,成为当前在Linux下非常流行的一种安装包。Cydia作者Jay Freeman(saurik)将deb包格式移植到iPhone平台,包括APT软件管理系统。
因此,在越狱系统下的大多数软件包格式均为deb格式包。deb包有三部分组成:
第一部分:数据包,包含实际安装的程序数据,文件名为:data.tar.xxx。
第二部分:安装信息及控制脚本包,包含deb的安装说明、标识、脚本等,文件名为: control.tar.gz。
第三部分:deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。
deb包的层次关系如下:
四.砸壳执行
逆向分析iOS应用实际包含两种途径: 1.自己砸壳正版应用。2.下载越狱区应用
砸壳工具: Clutch, 该工具可直接从越狱手机中的Cydia下载安装。
安装后, 将正版应用上传到越狱iPhone手机中, 执行命令进行砸壳, 如图:
砸壳成功后,通过IDA再次加载应用二进制程序,将可以看到正常显示出完整类名和函数名,如图: