概念
加壳:利用特殊算法,对可执行文件的编码进行改变(压缩、加密),达到保护程序代码的目的
脱壳:去掉壳程序,将未加密的可执行文件还原出来,或者称砸壳
脱壳方式:硬脱壳、动态脱壳
脱壳工具:flexdecrypt
判断是否加密:通过MachOView查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密
或者通过终端命令: otool -l Mach-O文件名 | grep crypt
flexdecrypt安装
下载地址:https://github.com/JohnCoates/flexdecrypt/releases/download/1.1/flexdecrypt.deb
安装方式
- 下载flexdecrypt.deb文件
- 将flexdecrypt.deb 拷贝到手机的 /var/root/Media/Cydia/AutoInstall目录
- 在手机上通过Filza资源管理工具定位到 /var/root/Media/Cydia/AutoInstall ,点击安装
- 远程登录iPhone6,输入 killall SpringBoard (重启手机桌面)回车
-
点击Cydia 定位到 已安装 查看flexdecrypt是否成功
如果已安装列表没有flexdecrypt 重启手机即可 (12.2为不完美越狱,重启手机推荐直接使用uncOver直接重新越狱,成功后直接重启)
登录手机终端条件下,输入 flexdecrypt 回车
脱壳/砸壳操作
- 登录iPhone6后,输入 ps -A 回车,寻找要脱壳的的软件
-
输入指令 flexdecrypt /var/containers/Bundle/Application/128F8D38-6CD7-4A12-A171-7CA4AB739C7D/MobileMail.app/MobileMail 回车
-
将 /tmp/MobileMail 路径下的 MobileMail 拷贝到Mac 工作文件夹, 在Mac终端输入 scp -P 10010 root@localhost:"/tmp/MobileMail" ~/Desktop/MobileMail 回车 (ps:MobileMail文件夹要先创建)
- 用Hopper Disassembler 查看脱壳后的Mach-O文件