iOS逆向工程之砸壳

在逆向砸壳过程中,遇到许多问题,在此把它记录下来,以备不测。废话不多说,进入主题!
在这里,我们以微信为例(树大招风)。

1.连接ssh

打开Mac的终端,用ssh连上自己的iPhone(注意:确保自己的iPhoneMac在同一个网段)。openSSHroot密码默认为:alpine

iOS逆向工程之砸壳_第1张图片
ssh登录手机

遇到的问题
ssh一直连不上手机,终端输入 ssh root@之后,一直无反应。各种百度之后,发现可以用 usb连接手机,很好,可以连上手机,但砸壳之路太过艰难,各种报错,网上也没有用 usb连接手机砸壳的教程,只好放弃。这个问题卡了三天左右终于找到解决办法。
1.1 iPhone版本是 iOS 10.1.1,机型为 SE
解决办法

1.进入以下路径:/private/var/containers/Bundle/Application/yalu102/yalu102.app/
2.用文本编辑器打开 dropbear.plist 文件。
3.替换 127.0.0.1:22 为 22。
4.重启设备,重新使用越狱工具恢复越狱。
注:越狱之后一定不要再装 OpenSSH 了,已经安装过的可以卸载掉。不然无法通过 WIFI 进行 SSH 连接。
经过以上步骤,就可以愉快的使用终端通过 WIFI 连接你的 iPhone 了。

1.2 iPhone版本是iOS 10.0.1,机型为iPhone 7


1、卸载open ssh
2、添加源: [http://cydia.ichitaso.com/test,cydia中搜索Dropbear并安装 59](http://cydia.ichitaso.com/test%EF%BC%8Ccydia%E4%B8%AD%E6%90%9C%E7%B4%A2Dropbear%E5%B9%B6%E5%AE%89%E8%A3%85)
3、重新安装open ssh
然后重试ssh root@iPhone ip,就可以了
2.寻找微信可执行文件

接下来我们需要找到微信的可执行文件的具体位置 ,我们先把iPhone上的所有程序都关掉,唯独留下微信。然后输入命令 ps -e,保存可用。

可执行文件

3.寻找Documents具体路径

最后我们需要用Cycript找出微信的Documents具体路径。输入命令cycript -p WeChat
进入cy#模式输入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]就能找出Documents的具体路径,保存可用。

Documents具体路径

提示:control+D 可退出模式

4.编译dumpdecrypted

dumpdecrypted下载地址
进入dumpdecrypted源码的目录,输入指make来编译dumpdecrypted。一般make后会在当前目录下生成一个dylib文件。

iOS逆向工程之砸壳_第2张图片
编译dumpdecrypted流程

5.rsync拷贝指令

题外话,之所以不用scp拷贝指令,是因为执行时报错了,并且rsyncscp更有优势。输入:rsync -avzu --progress 源文件路径 root@ip:目标文件路径

iOS逆向工程之砸壳_第3张图片
rsync

6.开始砸壳

重新连接ssh,cdDocuments具体路径下,输入dumpdecrypted的指令:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /PathTo

iOS逆向工程之砸壳_第4张图片
砸壳

遇到的问题
砸壳报错了,看错误提示,很明显, dumpdecrypted.dylib缺少所需的代码签名,那么我们给他签名就是了。

dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'

解决办法
终端输入

ldid -S /Users/zy/Desktop/dumpdecrypted-master/dumpdecrypted.dylib

然后再重复第六步,此时砸壳成功。然后就会生成.decrypted的文件,这个就是砸壳后的文件。我们接下来就可以对他做操作了,比如导出头文件。

iOS逆向工程之砸壳_第5张图片
砸壳成功

7.rsync远程下载到本地

输入:rsync -avzu --progress -r root@ip:文件目录/文件名 /目的地

iOS逆向工程之砸壳_第6张图片
拷贝文件到本地

8.导出微信头文件

使用class-dump为刚刚砸壳后的文件WeChat.decrypted进行头文件提取。不会安装请看mac 工具集(1)之class-dump
输入:class-dump -H 需要导出的框架路径 -o 导出的头文件存放路径

iOS逆向工程之砸壳_第7张图片
头文件

至此,砸壳成功!

参考:

萌新提问,在线等!ssh 连不上手机是怎么回事
用rsync代替scp在iOS和OSX之间传输数据
OS逆向基础-砸壳+class-dump
iOS逆向开发-砸壳
Mac ssh 登录 iphone 无响应问题请教

主要参考:【IOS应用逆向工程:分析与实战】

你可能感兴趣的:(iOS逆向工程之砸壳)