什么是壳?
iOS开发者可以到这么一个现象,上传App Store之前应用大小可能为50M,但是审核通过后去下载发现到了70M.说明在上传之后App Store对应用做了修改.这其中就包括给应用加壳.
加壳实际就是利用特殊的算法,对可执行文件的编码进行改变(比如加密),以达到保护程序代码的目的
脱壳
硬脱壳(静态脱壳)
动态脱壳
硬脱壳--->Clutch
工具配置
-
下载地址
Clutch
- 将版本号去掉并将Clutch文件拷贝到iPhone的/usr/bin目录
-
如果在iPhone上执行Clutch指令,权限不够,赋予“可执行的权限”
赋与权限
- 完成操作
Clutch指令
1.列出已安装的APP
$ Clutch -i
![](https://img.haomeiwen.com/i1679104/6620803125e4e2aa.png)
2.输入APP序号或者Bundle Id进行脱壳操作:Clutch -d APP序号或BundleId
$ Clutch -d 1
![](https://img.haomeiwen.com/i1679104/22e3df5d663c8929.png)
![](https://img.haomeiwen.com/i1679104/43e1b7acdb9ca487.png)
动态脱壳--->dumpdecrypted
工具配置
-
下载后执行make命令生成动态库
生成动态库
-
将dylib文件拷贝到iPhone上(如果是root用户,建议放/var/root目录)
动态脱壳指令
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 可执行文件路径
$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/BCB902ED-C406-4E58-ABCF-7CDCD783FFFF/aisiweb.app/aisiweb
![](https://img.haomeiwen.com/i1679104/c71e7b660109dad2.png)
-
完成脱壳
脱壳后文件
网友评论