加壳
class-dump 导出类信息头文件
常用格式:class-dump -H Mach-O文件路径 -o (文件名)
!!!!!!在使用class-dump如果不能正常dump出头文件,是因为旧版不支持swift,使用这个-class-dump
ios安装app流程如下图:
应用在上传App Store时,App Store会对应用进行加壳操作(这里有个坑,如果需要未加壳的App,推荐使用PP助手下载)。
原理:利用特殊的算法,对可执行文件的编码进行改变,比如雅俗、加密,以达到保护程序代码的目的。
加壳操作
加壳后的可执行文件不能直接运行,而壳程序能被ldyd文件识别运行后,最后将机密文件进行解密并运行。
脱壳
什么是脱壳?
- 摘掉壳程序,将为加密的可执行文件还原出来
- 脱壳有两种方法:硬脱壳、动态脱壳
查询是否加壳
首先在本地文件夹中找到项目文件,将后缀.ipa修改为.zip,然后解压得到文件夹
打开解压后的文件夹中的Payload:
右键点击ting显示包内容并找到可执行文件:
这里推荐使用命令行查壳: otool -l 文件路径 | grep crypt
如果出现cryptid字段值为1.则代表加壳了,0就代表为加壳这里是由于该app有两种架构,所以出现的结果有两个。
脱壳工具(以及遇到的坑和解决办法)
- Dumpdecrypted(链接中有各种问题的详细解决方式)
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 文件路径(通过ps-A查看)
解密结果:
ls -l 查看文件
脱壳成功!
脱壳后路径: