iOS逆向ios逆向

iOS逆向工具之砸壳工具(MacOS&iOS)介绍

2019-12-31  本文已影响0人  木子心语

上一篇文章地址: iOS逆向工具之class-dump(MacOS)介绍

今天是2019年12月31号,2019年最后一天了,祝大家2020跨年快乐.
明天就是2020年1月1日了,同样祝大家元旦快乐!


我之前写的文章: 汇编逆向工具集(二) 介绍了dumpdecrypted的使用,本篇文章同样会介绍,你也可以看下汇编逆向工具集(二)文章中提到的dumpdecrypted.

1. dumpdecrypted

dumpdecrypted make 编译 7747CD0B-86E8-4888-9567-912C72D44F3E.png

注意

估计你看到这些,就会很头疼了,到底哪个是呢?

2960658-4d3bbc74c665ca04.png
scp /Users/popo/Desktop/dump/dumpdecrypted/dumpdecrypted.dyli root@192.168.3.15:var/mobile/Containers/Data/Application/065B70ED-FCD1-4874-B4A3-86F1B765945F/Documents/dumpdecrypted.dylib

第二种:

以上两种方式,只需要拷贝成功就行,选择那种,根据个人喜好.

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/9AF4167F-D4AA-4DBB-A67D-A956CCDBDEF9/WeChat.app/WeChat mach-o decryption dumper

砸壳失败了,分析一下原因:
required code signature missing for 'dumpdecrypted.dylib
由于没有对dumpdecrypted.dylib签名,导致我们没有砸壳成功.

codesign --force --verify --verbose --sign "iPhone Developer: `(开发这信息)`" dumpdecrypted.dylib 

然后在上传到手机

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/9AF4167F-D4AA-4DBB-A67D-A956CCDBDEF9/WeChat.app/WeChat mach-o decryption dumper

在当前目录下会生成WeChat.decrypted文件

砸壳完成,然后你就可以拿着砸壳文件就行class-dump,静态分析汇编代码了.

问题:dumpdecrypted为什么拷贝到Documents目录下操作?

AppStore对沙盒以外的绝大数目录没有写权限. Documents目录下使用dumpdecrypted.dylib时,保证它能在当前目录下写一个decrypted文件.

2.Clutch

除了dumpdecrypted,我们还可以通过Clutch来解密.

Clutch Clutch编译源码 Clutch 可执行文件 编译后的Clutch

1 通过iFunBox拷贝目录/usr/bin目录下

2960658-6322cba4ef28e53a.png

2 通过SCP拷贝

scp Clutch/clutch root@设备ip:/usr/bin/

Clutch [OPTIONS]
-b --binary-dump     Only dump binary files from specified bundleID
-d --dump            Dump specified bundleID into .ipa file
-i --print-installed Print installed application
--clean              Clean /var/tmp/clutch directory
--version            Display version and exit
-? --help            Display this help and exit

经过对参数的翻译:


1.clutch -b 砸壳后的文件是二进制文件

2.clutch -d 砸壳后的文件是ipa文件

3.clutch -i 查看安装的应用

4.clutch --clean /var/tmp/clutch 目录清理

5.clutch --version 显示版本并退出

6.clutch -? --help 显示帮助并退出

1.上图:我们可以看到通过执行 sh sshLogin.sh,我们不需要输入密码直接可以连接到越狱机,同事执行clutch -i 命令
2.从终端显示,执行的clutch -i 并没有执行成功
3.权限不够,加权来凑.我们需要对/usr/bin目录下的clutch进行加权
4.加权,你可以chmod 777 /user/bin/clutch
5.同样加权,你也可以通过chmod +x /user/bin/clutch
6. (1)中提交的sh 执行脚本,我会在文章iOS逆向工具之Cydia(iOS)介绍中介绍如何使用

clutch 授权成功

1.我们可以看到应用的再越狱中运行的序列号为1
2.我们还可以看到应用的bundle id

1.通过执行命令 clutch -d app序列号
2.通过执行命令 clutch -d app包名

# Zipping WeChat.app
# Swapping architectures..
# DONE: /private/var/mobile/Documents/Dumped/hk.itools.appe-iOS7.0-(Clutch-2.0.4).ipa
ipa目录

这就是Clutch砸壳,很容易使用

注意
虽然我们介绍了两款砸壳工具,并不代表,你想砸壳的应用,使用上面两种方式都很顺利.我曾经尝试砸壳某应用,使用两种方式,我并没有砸壳成功.

分析
1.有可能这款应用做了防护
2.我们的砸壳应用已经不使用某应用了,砸壳方式需要改变

我们接下来继续介绍第三方砸壳方式

3.frida-ios-dump 一条命令完成iOS应用砸壳

frida

Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
面向开发人员、逆向工程师和安全研究人员的动态工具工具包。

注意
如果你第一次打开Cydia,搜索Frida是搜索不到的,我们需要在软件源中添加,红线画的是frida软件源地址,你可以添加一下.

Cydia_Frida 搜索frida

我们搜索frida,然后安装即可.

Mac下安装frida

我们通过终端已完成安装

注意
如果出现下面的错误

Uninstalling a distutils installed project (six) has been deprecated and will be
removed in a future version. This is due to the fact that uninstalling a distutils 
project will only partially uninstall the project.

我们如何解决这个问题呢?
原因:Apple预安装的这个six库出于安全原因被设置为sudo也不可以执行操作,所以需要依赖于高版本的库就需要更新six.
终端执行命令

sudo pip install frida –upgrade –ignore-installed six

问题解决后,你可以在尝试安装

我们可以看到js,python,sh脚本等文件

配置环境

下载了很多文件,需要等待一会,就会配置好

dump.py文件配置

1. 你可以直接打开文件
2. 你也可以通过命令打开文件vim /opt/dump/frida-ios-dump/dump.py,进行编辑后保存
3. 如果没有修改密码,这里了不需要进行修改;如果修改密码,请修改你的密码
4. 到这里frida环境配置完成

端口转发

端口转发

ssh连接越狱机

ssh连接越狱机 dump.py -l 砸壳成功,生成ipa ipa文件 砸壳成功

没有壳的应用,cyrptid 为0

4.总结

我们本篇文章主要讲解了砸壳三剑客.

文章介绍到这里,想必你应该会使用三款软件了.
下篇文章继续介绍iOS逆向工具.
请持续关注,或者留言给我.

上一篇下一篇

猜你喜欢

热点阅读