iOS程序破解与调试基础

发表于2015-07-08
评论0 1.3k浏览
 、app破解

由于苹果正常情况下的app主要通过app store下载,而在上传到app store时会被进行drm保护。被保护后的ipa无法直接分析,也无法进行相关的patch,因此,对ipa的破解,获取其真实的代码,资源数据就尤为重要,也因此是每一个app逆向分析的首要步骤。

 破解app的方法

目前破解app已经有专门的工具,均需手机越狱,其中有guicrakulous.以及命令行的clutch

 clutch为例:

在越狱后的机器上打开terminal:

使用login进入根权限后。输入

Clutch,将显示当前的app名及序号,再次输入

Clutch (对应的app序号)则开始破解该app

如上图,我们选取的是某游戏的app进行破解

破解后的ipa被保存在/var/root/documents/cracked/

利用如91助手的文件管理功能,将ipa下载到电脑中。

再利用ida6.1及以上版本)打开ipa进行分析得到:

 调试

Ios app的调试,主要利用openssh+gdb的方式。

在进行调试之前,首先须确保手机越狱,而后通过cydia在手机中安装下列软件:

Openssh(搭建ssh通道,实现远程登录用)

Terminalios上的终端程序,可实现命令行控制,同时也可由putty远程利用openssh的通道登录)

Adv-cmd(提供更复杂的命令行指令)

 

安装以上三个软件后。利用无线进行手机与笔记本的连接:

可利用无线网络,让手机与笔记本加入同一无线网络中

可利用笔记本本身的无线功能,由笔记本本身创建临时无线网络,让手机加入该网络

 

处于同一网络后,查看手机的网络地址:

点击红框中的箭头,则看到ip地址:

(手机安装openssh,terminal后)利用putty远程登录

此时即可利用gdb调试了,在手机中打开我们想要调试的进程(某单机游戏为例)。于手机中打开该游戏后。在putty中输入ps -ax(需手机安装adv cmds):

找到了对应的进程,此时如普通的linux控制台,使用gdb -p 10540则可挂上该进程进行调试:

利用disas指令即可查看反汇编代码:

 

这样,利用gdb的动态调试功能,结合ida的静态分析功能。则可实现对手机进行逆向分析调试的目的。


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引