iOS 逆向工程 app安全 网络安全iOS入的那些坑iOS Developer

iOS应用逆向工程之初窥门径

2017-07-08  本文已影响331人  Vampire丶Lv

前言:

最近刚刚接触逆向这一块,之前一直觉得是很高大上的一个方向,有点可望而不可即的样子。机缘巧合之下,开始了逆向之路,这两天一直在研究这一块,目前仅仅是砸了壳,得到了.h文件然后用hopper进行了简单的分析。所以这篇文章主要分享一下这几天遇到的坑以及解决方法,做一个记录同时也希望能帮助到跟我一样的人。OK,话不多说,开始。

1、开发的准备工作

2、开始逆向的第一步

有些从 APPStore 商店下载安装的APP 默认都被苹果加了一层壳,加了壳后我们就无法使用dump导出头文件等其它操作,常用的砸壳工具有dumpdecrypted、Clutch、AppCrackr。
这里我们使用dumpdecrypted砸壳。下载地址。通过make命令得到的dumpdecrypted.dylib就是我们的工具。

此处有一个乌龟壳
第一步:分别找到两个地址

我这里用的是WiFi连接,使用上有一定的局限性,更好的方案是使用USB连接,推荐两篇文章,之后我也会用USB进行连接。debugserver和lldb进行调试iOS逆向工程之Hopper+LLDB调试第三方App .
用到的命令:

1, ssh root@10.10.245.208 (iP地址为设备的iP地址)
2, ps -e (查看进程)
3, cycript -p (附加进程)
4, [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
inDomains:NSUserDomainMask][0]

演示图
** 注意: ** 如果直接用IP地址不可以的话,可以打开电脑的pp助手,在工具里面有一个“打开ssh通道”,手动打开之后,弹窗会提示将设备的IP地址端口映射到了本地,并且给出了提示如何进入root权限,比如,ssh root@localhost -p 2223,密码都是默认的alpine,输入后即可进入了。
iOS逆向-用Cycript进行运行时分析(微信应用)iOS运行时工具-Cycript 。 这两篇文章可以了解一下Cycript。
第二步:拷贝dumpdecrypted.dylib 到App的Documents的目录,需要用到的命令:
scp ~/dumpdecrypted.dylib root@10.10.242.107:/var/mobile/Containers/Data/Application/2B4C6281-C015-4FF3-A8EC-5E5C7554D447/Documents 利用Scp命令进行拷贝) 截图
第三步 :砸壳

进入到 Documents 目录下,然后进行砸壳:
需要用到的命令:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/
Application/BFED82A3-3238-4F41-B797-C1CB584CBE05/qqlive.app/qqlive


演示3

然后就会生成.decrypted的文件,这个就是砸壳后的文件。我们接下来就可以对他做操作了,比如导出头文件。
** 注意: ** 我在这里遇到问题了,一是无法用IP进行连接拷贝动态库,二是当我手动把动态库拷贝到documents/下面然后去进行砸壳的时候提示我,dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found. Did find:
dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
错误。

之后重新上传砸壳既可。

第四步:拷贝出.decrypted文件并导出头文件

输入命令:

class-dump -S -s -H xxx.decrypted -o ./Headers (前面是脱壳文件的位置,后面是导出.h文件的目标文件夹)

** 如果, **没有成功,不要紧张,应该是导出头文件时指定的ARM架构不正确。所以,解决方法如下:
armv6:iPhone、 iPhone2、iPhone3G、 第一代和第二代iPod Touch
armv7: iPhone4、 iPhone4S
armv7s: iPhone5、iPhone5C
arm64: iPhone5S、iPhone6、iPhone6s

使用class-dump的--arch配置项来指定了具体的架构,例如
class-dump --arch armv7 -S -s -H WeChat.decrypted -o ./Headers

简单说一下Hopper disassembler

下方就是使用Hopper打开“脱壳”文件的效果。当然,你也可以使用IDA Pro来查看,当然此处我们使用的是Hopper。从下方的截图来看,结果是OK的。


演示5
上一篇下一篇

猜你喜欢

热点阅读