应用砸壳:一般在客户端的应用为了防止别人反编译会对可执行文件进行加密保护(加壳),我们的砸壳就是解密的过程
静态砸壳
知道了应用的加密算法和逻辑。在不需要运行应用的情况下,直接使用工具进行解密。这种方案难度很大,成本高。加密算法一旦改变,解密工具就失效。
动态砸壳
在应用启动之后,从内存中找到应用的位置,导出内存中的数据。因为应用能够运行就必然被CPU读取。二CPU也只能读取解密之后的可执行文件。所以导出内存中的数据就是解密之后的数据。
应用运行原理
加密应用从磁盘载入内存的过程中,有内核调用解密程序进行解密。
解密之后的可执行文件由DYLD载入内存。
Clutch(命令行工具)
Clutch -i 列出可砸应用
Clutch -d 应用编号、BundleID
导出的是ipa包!
dumpdcrypted(.dylib库)
通过 DYLD_INSERT_LIBRARIES环境变量,插入动态库,载入某个应用执行动态库代码进行砸壳。
导出的 MachO
frida-ios-dump(利用frida加载脚本砸壳工具)
安装frida。Mac 和 iPhone。
下载frida-ios-dump 脚本工具
执行dump.py脚本 参数是应用名称 : 导出的是ipa包
Cycript
越狱手机安装Cycript插件,依赖插件 adv-cmds
依附程序
cycript -p 进程ID/名称
cy文件路径
/usr/lib/cycript0.9 目录