砸壳、Clutch、插入动态库、dumpdecrypted、fr

2019-11-15  本文已影响0人  Code_人生

一、砸壳

软件脱壳,顾名思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密)。

只有砸过壳的才能反汇编分析、才能class-dump、才能重签名

正版应用的MachO的cryptid 为 1,越狱应用的MachO的cryptid 为 0
1、砸壳原理

1.1、应用加壳(加密)
提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管理软件授权。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳(脱壳)

1.2、应用砸壳(解密)

2、iOS应用运行原理

二、工具一:Clutch

Clutch是由KJCracks开发的一款开源砸壳工具。工具支持iPhone、iPod Touch、iPad,该工具需要使用iOS8.0以上的越狱手机应用,iOS11以上好像也没法用了。

1、安装
2、使用

三、插入动态库

是插入,不是注入哦


这个Framework由于需要在5s上运行所以选择iOS 9.0

选择项目TestDyz Build一下会把所有的Framework都Build出来;
选择对应的Framework Build一下会把对应的Framework Build出来;
选择项目TestDyz
选择对应的Framework
先把test1.framework拷贝到桌面
拷贝到手机scp -P 12345 -r ~/Desktop/test1.framework root@localhost:~/

查看运行的machO ps -A
插入,是插入不是注入 DYLD_INSERT_LIBRARIES=动态库的路径 运行的machO的路径
eg:DYLD_INSERT_LIBRARIES=test1.framework/test1 /var/mobile/Containers/Bundle/Application/98E64AC3-BB0C-4E0B-AB5A-55182669FE87/AlipayWallet.app/AlipayWallet
这个test1.framework/test1动态库依附在/var/mobile/Containers/Bundle/Application/98E64AC3-BB0C-4E0B-AB5A-55182669FE87/AlipayWallet.app/AlipayWallet这个MachO上运行

四、工具二:dumpdecrypted

Github开源工具。 dumpdecrypted这个工具就是通过建立一个名为dumpdecrypted.dylib的动态库,插入目标应用实现脱壳。

1、安装

五、工具三:frida-iOS-dump

该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件。

1、安装frida
1.1、Mac安装方式:
1.2、iOS安装方式:

1、添加源 http://build.frida.re
2、安装Frida

1.3、Mac配置ios-dump

frida-ios-dump

下载脚本
git clone 网址;下载到当前文件夹
$sudo git clone https://github.com/AloneMonkey/frida-ios-dump

进入下载好的frida-ios-dump目录安装依赖
$sudo pip install -r requirements.txt --upgrade
如果报没有权限就加一个--user
$sudo pip install -r requirements.txt --upgrade --user

1.4、执行
上一篇 下一篇

猜你喜欢

热点阅读