iOS砸壳&&Theos

一、概述

从App Store下载的应用是加过壳的,加壳的应用是不能直接执行的,手机之所以能够使用下载的app,是因为操作系统有解密的方法。

Mach-O文件 -> 苹果加密 -> 加壳文件

加壳文件 ->系统解密 -> Mach-O文件(DYLD)

1.DRM(数字版权管理)检查 

2.找到合适的架构进行解密 

3.使用DYLD加载解密的MachO

砸壳工具(GitHub上)

*Clutch  (静态砸壳)

*dumpdecrypted (动态砸壳)

iOS砸壳&&Theos_第1张图片

二、砸壳

1.使用Clutch砸壳(使用Clutch砸壳需要拷贝到越狱设备上)

$ file Clutch-2.0.4

iOS砸壳&&Theos_第2张图片

1.1先映射之后,再拷贝到越狱设备的bin目录下,放在bin目录下,在其他地方也可以使用clutch的命令

$ scp -P 12345 Clutch-2.0.4 root@localhost:/usr/bin (拷贝)

iOS砸壳&&Theos_第3张图片
iOS砸壳&&Theos_第4张图片
iOS砸壳&&Theos_第5张图片

1.2在“~/”目录下输入clutch命令没有提示,需要修改下名字才会有提示

$ mv Clutch-2.0.4 Clutch (修改Clutch-2.0.4 为Clutch)

iOS砸壳&&Theos_第6张图片

1.3添加权限

$ chmod +x Clutch

1.4查看可以砸壳的应用

$ Clutch -i      

1.5砸壳

Clutch -d com.gotokeep.keep

iOS砸壳&&Theos_第7张图片
iOS砸壳&&Theos_第8张图片

2.使用dumpdecrypted砸壳

$ make 

iOS砸壳&&Theos_第9张图片

2.1把动态库拷贝到越狱设备上

$ scp -P 12345 dumpdecrypted.dylib root@localhost:~/

2.2 DYLD_INSERT_LIBRARIES是DYLD(动态连接器)的一个环境变量,DYLD在加载过程中,通过DYLD_INSERT_LIBRARIES添加一个动态库 ,并依附一个进程,使添加的动态库被执行,通过2.3可以看出,添加的动态库被执行了

$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib xxx

iOS砸壳&&Theos_第10张图片

注意:动态库作用:把内存中可执行文件拷贝出来

把动态库拷贝出来的可执行文件拷到桌面

$ scp -P 12345 root@localhost:~/WeChat.decrypted ~/Desktop

iOS砸壳&&Theos_第11张图片

2.3新建动态库test(测试用)(framework动态库下有Mach-O文件test,dylib没有)

iOS砸壳&&Theos_第12张图片
iOS砸壳&&Theos_第13张图片

因为test.framework是文件夹所以加了个 -r

$ scp -r -P 12345 test.framework/ root@localhost:~/

iOS砸壳&&Theos_第14张图片

添加动态库中的可执行文件

DYLD_INSERT_LIBRARIES=test.framework/test xxx(xxx为某个应用的进程)

iOS砸壳&&Theos_第15张图片

三.Theos的配置和使用

1.Theos的配置

https://github.com/theos/theos/wiki/Installation

Homebrew安装:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

常用的方式

brew install ldid 安装

brew uninstall ldid 卸载

brew search ldid 搜索

brew upgrade ldid 更新

brew list 查看列表

brew update 更新Homebrew

2.Theos的使用(窃取微信密码)

iOS砸壳&&Theos_第16张图片
iOS砸壳&&Theos_第17张图片

配置IP和端口

iOS砸壳&&Theos_第18张图片
iOS砸壳&&Theos_第19张图片
iOS砸壳&&Theos_第20张图片
iOS砸壳&&Theos_第21张图片
iOS砸壳&&Theos_第22张图片
iOS砸壳&&Theos_第23张图片
iOS砸壳&&Theos_第24张图片
iOS砸壳&&Theos_第25张图片
iOS砸壳&&Theos_第26张图片
iOS砸壳&&Theos_第27张图片

注意:

关于Theos的坑!!!!

1.不要在中文目录下编译工程.否则报错!

2.packageName(包名称),全部小写!!!

打包的问题:make package

Error: IO::Compress::lzma

解决方案两种:

1.安装xz

$ brew install xz

$ sudo cpan IO::Compress::Lzma

2. 改变压缩方式

2.1修改dm.pl 文件

vim $THEOS/$THEOS/vendor/dm.pl/dm.pl

#use IO::Compress::Lzma;

#use IO::Compress::Xz;

iOS砸壳&&Theos_第28张图片

2.2修改deb.mk 文件

vim $THEOS/makefiles/package/deb.mk

修改为:

_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= gzip

iOS砸壳&&Theos_第29张图片

编译的问题:make

Error: You do Not an SDK

需要指定Xcode . 安装过MonkeyDev

make clean 清除缓存!

推荐 

https://www.jianshu.com/p/2efa44f2151f

你可能感兴趣的:(iOS砸壳&&Theos)