iOS逆向分析预备知识-砸壳

一.为什么要砸壳

DRM(Digital Rights Management),即:内容数字版权加密保护技术。放在苹果App Store上的所有应用均通过公钥进行加密保护,当应用在IOS系统上运行时,通过苹果公司的私钥进行内容解密。

通过静态反汇编工具IDA反编译具有DRM保护的应用时,IDA会自动识别目标已加密,如图:

iOS逆向分析预备知识-砸壳_第1张图片

点击上图中的“Yes”按钮, 经过加密的内容IDA是无法正常解析出类名和函数名的,如图:

iOS逆向分析预备知识-砸壳_第2张图片

二.砸壳的注意事项

经过实践证明,iOS脱壳之前需要提前做好以下准备:

  • 脱壳的目标应用必须先安装到越狱手机上。

  • 必须要拥有一个Apple ID,并使用该账号下载正版应用。

  • 越狱手机安装完应用后运行一下APP,如果发生闪退现象, 需要重新安装, 如果运行应用需要输入Apple ID账号和密码,需要输入正确后方可执行破解流程。

以上任何一个操作不当,都有可能造成iOS应用脱壳失败,最好的方法是将Apple ID与手机绑定,如图:

iOS逆向分析预备知识-砸壳_第3张图片

三.苹果移动应用基本格式

苹果官方应用下载完成后,统一以”.ipa”为后缀, .ipa格式文件本质是一个Zip压缩包, 通过UE打开一个ipa格式包能够看到Zip头格式,如图:

iOS逆向分析预备知识-砸壳_第4张图片

将ipa格式包进行解压,可以发现该包主要由三个部分组成:名为Payload文件夹、iTunesArtwork和iTunesMetadata.plist。 Payload文件夹:该文件夹下有一个.app子文件夹,在该文件夹下包含应用主程序和所有的资源文件。 iTunesArtwork:该文件名称固定且无后缀,实质上是一个png图片文件,用来在iTunes中显示应用图标。iTunesMetadata.plist:该文件主要记录了购买者信息和售价等数据。层次关系图如下:

iOS逆向分析预备知识-砸壳_第5张图片

Deb格式是Debian系统专属安装包格式,配合APT软件管理系统,成为当前在Linux下非常流行的一种安装包。Cydia作者Jay Freeman(saurik)将deb包格式移植到iPhone平台,包括APT软件管理系统。

因此,在越狱系统下的大多数软件包格式均为deb格式包。deb包有三部分组成:

  • 第一部分:数据包,包含实际安装的程序数据,文件名为:data.tar.xxx。

  • 第二部分:安装信息及控制脚本包,包含deb的安装说明、标识、脚本等,文件名为: control.tar.gz。

  • 第三部分:deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。

deb包的层次关系如下:

iOS逆向分析预备知识-砸壳_第6张图片

四.砸壳执行

逆向分析iOS应用实际包含两种途径: 1.自己砸壳正版应用。2.下载越狱区应用

砸壳工具: Clutch, 该工具可直接从越狱手机中的Cydia下载安装。

安装后, 将正版应用上传到越狱iPhone手机中, 执行命令进行砸壳, 如图:

iOS逆向分析预备知识-砸壳_第7张图片

砸壳成功后,通过IDA再次加载应用二进制程序,将可以看到正常显示出完整类名和函数名,如图:

iOS逆向分析预备知识-砸壳_第8张图片

你可能感兴趣的:(软件逆向工程,系统安全)