iOS越狱-脱壳

什么是加壳?

利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的

什么是脱壳?

摘掉壳程序,将未加密的可执行文件还原出来(有些人也称为“砸壳”)

脱壳主要有2种方法:硬脱壳、动态脱壳
iOS中采取“硬脱壳”的方式

iOS中有很多好用的脱壳工具

Clutch:https://github.com/KJCracks/Clutch

dumpdecrypted:https://github.com/stefanesser/dumpdecrypted/

凡是App Store上的应用都有加壳

如何验证可执行文件是否已经脱壳?

1.使用MachOView软件

查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密


iOS越狱-脱壳_第1张图片
machOView2.jpeg

2.通过otool命令行也可以:

otool  -l  可执行文件路径  |  grep  crypt 

示例

otool -l MoneyAssistant | grep crypt

输出

 cryptoff 16384
 cryptsize 8404992
 cryptid 1
 cryptoff 16384
 cryptsize 9142272
 cryptid 1

说明PP助手是有加密的

一.Clutch安装

1.下载最新版本Clutch文件

https://github.com/KJCracks/Clutch/releases

2.建议去掉版本号,改名为Clutch
3.将Clutch文件拷贝到iPhone的/usr/bin目录

二.Clutch 使用

登录服务器
输入

Clutch

如果出现了

-sh: /usr/bin/Clutch: Permission denied

说明权限不够,赋予“可执行的权限

chmod +x /usr/bin/Clutch

再次输入Clutch指令

Usage: 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 applications
 --clean  Clean /var/tmp/clutch directory 
 --version  Display version and exit 
-? --help Display this help and exit 
-n --no-color Print with colors disabled 

列出已安装在手机,未脱壳的应用

Clutch -i

输出

Installed apps:
1:  爱思加强版 
2:  微信 
3:  こつこつ家計簿-無料のカレンダー家計簿 
4:  今日头条 

输入APP序号或者Bundle Id进行脱壳操作:Clutch -d APP序号或BundleId

Clutch -d 3

输出

…
Zipping CodePush.framework
Zipping DOUAudioStreamer.framework
Zipping DoubleConversion.framework
Zipping FLAnimatedImage.framework
Zipping Masonry.framework
Zipping REFrostedViewController.framework
Zipping RNFS.framework
Zipping React.framework
Zipping SDWebImage.framework
Zipping SwiftyJSON.framework
Zipping ZFPlayer.framework
Zipping folly.framework
Zipping glog.framework
Zipping react_native_fetch_blob.framework
Zipping react_native_video.framework
Zipping react_native_wkwebview.framework
Zipping yoga.framework
DONE: /private/var/mobile/Documents/Dumped/com.pd.A4Player-iOS9.0-(Clutch-2.0.4).ipa

脱壳的地址:

/private/var/mobile/Documents/Dumped/com.pd.A4Player-iOS9.0-(Clutch-2.0.4).ipa

这个ipa包就是脱壳后的ipa包,解压拿到Mach-O文件后,可以使用MachOView进行验证是否已经脱壳

查看文件类型

比如PP助手可执行文件MoneyAssistant

file MoneyAssistant

输出

MoneyAssistant: Mach-O universal binary with 2 architectures: [arm_v7:Mach-O executable arm_v7] [arm64]
MoneyAssistant (for architecture armv7):  Mach-O executable arm_v7
MoneyAssistant (for architecture arm64):  Mach-O 64-bit executable arm64

你可能感兴趣的:(iOS越狱-脱壳)