iOS 12.2 脱壳/砸壳(使用flexdecrypt)

概念

加壳:利用特殊算法,对可执行文件的编码进行改变(压缩、加密),达到保护程序代码的目的

2021-01-22 3.58.12.png

脱壳:去掉壳程序,将未加密的可执行文件还原出来,或者称砸壳

脱壳方式:硬脱壳、动态脱壳

2021-01-22 3.58.28.png

脱壳工具:flexdecrypt

判断是否加密:通过MachOView查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密

2021-01-22 4.17.14.png

或者通过终端命令: otool -l Mach-O文件名 | grep crypt


2021-01-22 4.11.32.png

flexdecrypt安装

下载地址:https://github.com/JohnCoates/flexdecrypt/releases/download/1.1/flexdecrypt.deb

安装方式

  1. 下载flexdecrypt.deb文件
2021-01-22 4.23.53.png
  1. 将flexdecrypt.deb 拷贝到手机的 /var/root/Media/Cydia/AutoInstall目录
2021-01-22 4.35.39.png
  1. 在手机上通过Filza资源管理工具定位到 /var/root/Media/Cydia/AutoInstall ,点击安装
2021-01-22 4.35.49.png
  1. 远程登录iPhone6,输入 killall SpringBoard (重启手机桌面)回车
2021-01-22 4.43.01.png
  1. 点击Cydia 定位到 已安装 查看flexdecrypt是否成功


    IMG_0001.PNG
  2. 如果已安装列表没有flexdecrypt 重启手机即可 (12.2为不完美越狱,重启手机推荐直接使用uncOver直接重新越狱,成功后直接重启)

  3. 登录手机终端条件下,输入 flexdecrypt 回车

2021-01-22 4.43.20.png

脱壳/砸壳操作

  1. 登录iPhone6后,输入 ps -A 回车,寻找要脱壳的的软件
2021-01-22 4.49.55.png
  1. 输入指令 flexdecrypt /var/containers/Bundle/Application/128F8D38-6CD7-4A12-A171-7CA4AB739C7D/MobileMail.app/MobileMail 回车


    2021-01-22 4.51.12.png
  1. 将 /tmp/MobileMail 路径下的 MobileMail 拷贝到Mac 工作文件夹, 在Mac终端输入 scp -P 10010 root@localhost:"/tmp/MobileMail" ~/Desktop/MobileMail 回车 (ps:MobileMail文件夹要先创建)


    2021-01-22 4.54.46.png
  1. 用Hopper Disassembler 查看脱壳后的Mach-O文件
2021-01-22 5.00.49.png

参考资料

iOS 逆向工程(十三)之加壳与脱壳/砸壳(https://www.cnblogs.com/akiha/p/13377935.html)