android ios 逆向工程,iOS逆向工程之砸壳

在逆向砸壳过程中,遇到许多问题,在此把它记录下来,以备不测。废话不多说,进入主题!

在这里,我们以微信为例(树大招风😄)。

1.连接ssh

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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,保存可用。

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

可执行文件

3.寻找Documents具体路径

最后我们需要用Cycript找出微信的Documents具体路径。输入命令cycript -p WeChat

进入cy#模式输入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]就能找出Documents的具体路径,保存可用。

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Documents具体路径

提示:control+D 可退出模式

4.编译dumpdecrypted

dumpdecrypted下载地址

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

编译dumpdecrypted流程

5.rsync拷贝指令

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

rsync

6.开始砸壳

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

砸壳

遇到的问题

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

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

解决办法

终端输入

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

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

砸壳成功

7.rsync远程下载到本地

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

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

拷贝文件到本地

8.导出微信头文件

使用class-dump为刚刚砸壳后的文件WeChat.decrypted进行头文件提取。不会安装请看mac 工具集(1)之class-dump

输入:class-dump -H 需要导出的框架路径 -o 导出的头文件存放路径

ff1d5f83bbee?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

头文件

至此,砸壳成功!

参考:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值