设备环境:
硬件环境:iPhone6.0、Mac电脑Big Sur(M1 芯片)。
软件环境:已破壳ipa、IDA_pro_for_mac、class-dump。
2. 软件简绍:
砸壳工具:Bfinject、Clutch、frida-ios-dump、CrackerXI+(手机上);
静态文件分析:
class-dump:解析文件头文件;
MachOView:查看头文件;
pagestuff:分析头文件;
IDA:分析静态文件,反编译等;
Hopper:反编译;
动态调试:
LLDB:动态调试;
Cycript:动态调试,挂载进程;
抓包工具:
Charles:抓包;
shadowrocket:抓包(手机上);
综合工具:
MonkeyDev:动态调试;
3. 操作步骤:
3.1 静态分析工具
3.1.1 class-dump
3.1.1.1安装步骤
略
3.1.1.2 使用方式
导出头文件:
class-dump -H 应用程序包中可执行文件 -o 文件保存路径
3.1.2 MachOView
3.1.3 IDA_pro
3.1.3.1 安装步骤
下载地址:百度网盘
注意:有的会显示未有权限打开该应用程序;
打开路径:ida.app显示包内容-> contents-> macos -> ida64
注意:输入法必须切换成默认输入英文ABC的状态,否则会报almost crash错误;
备注:ida64.app直接打开会崩溃;
3.1.3.2 快捷键
当前页面搜索:option+T ;
反编译当前代码:fn + F5 ;
functions窗口搜索:control+F ;
流程图与代码来回切换:空格键;
3.1.3.3 参考博文
界面介绍:http://www.360doc.com/content/16/0612/15/11400509_567140214.shtml
3.2 动态调试工具
3.2.1 cycript
为了更好地了解应用程序的内部结构及其运行方式,理解代码的层次结构或布局。
3.2.1.1 安装步骤
参考博文:https://www.jianshu.com/p/d93e9fccef4b、https://www.jianshu.com/p/65bd7b7e77ab
教程资料:https://docs.huihoo.com/rsaconference/usa-2014/hta-r04a-hacking-ios-on-the-run-using-cycript.pdf
3.2.1.2 命令语句
挂载要挂的应用程序进程上:
ssh root@127.0.0.1-p 2222
ps aux | grep pinduoduo //会显示进程号
PIDcycript -p PID号 //相当于是cycript 挂载到了这个进程上
退出指令:control+D
查看挂载应用程序的方式:
UIApp //显示应用程序对象的主入口点
UIApp.keyWindow.rootViewController //找出管理当前在应用程序窗口屏幕上呈现的内容的类。ObjectiveC.classes。 //App已加载所有的Objective-C类
*对象 //例 *UIApp,获取对象多有成员变量,对象又可以用#内存地址来表示,因此,又可以写成 *#0x133d04780
UIApp.keyWindow.recursiveDescription().toString(). //打印的是当前的ui树,或者写为 [UIApp.keyWindow recursiveDescription].toString
[#0x14da3f000 nextResponder] //输出当前节点的下一级事件响应链,然后对输出节点再次调用 nextResponder
参考博文:http://www.aqwu.net/wp/?p=342https://www.jianshu.com/p/edbaeb246d48
3.2.2 lldb
官网:https://lldb.llvm.org/use/tutorial.html、https://github.com/derekselander/lldb
3.2.2.1安装步骤
参考博文:https://www.jianshu.com/p/7f6d86bce828
3.2.3 Frida
官网文档:https://www.frida.re/docs
3.2.3.1 安装步骤
略
3.2.3.2 命令语句
frida-ls-devices :显示连接信息frida-ps 命令, ps就是process进程的意思;
frida-ps -U:U就是usb,显示usb连接设备的所有运行中的进程;
frida-ps -Ua:a表示app,显示所有运行的app;
frida-ps -Uai:i表示安装,显示所有安装的app;
frida-ps -D 0216027d1d6d3a03:多设备使用,连接指定的device;
frida -U -p PID号 -l xx.js 或者frida -U -f 应用程序包名 -l xx.js:
3.2.3.2 Q & A
frida -U -f 应用程序包名 -l xx.js 显示Failed to spawn: FBSOpenApplicationErrorDomain error 1;[解决方法] 换进程号重试;
3.3 抓包工具
3.3.1 Charles
官网:https://www.charlesproxy.com/latest-release/download.do
3.3.1.1 安装步骤
3.3.1.2 Q & A
电脑不开Charles不能联网的问题:https://www.shuzhiduo.com/topic/mac电脑不开charles不能联网/