三、iOS逆向:文件分析工具安装

  1. 设备环境:

硬件环境: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

分析流程:https://cloud.tencent.com/developer/article/1997178?areaSource=103001.4&traceId=xaSPGXI7Zs8u7S9EjQBhS

3.2 动态调试工具
3.2.1 cycript

为了更好地了解应用程序的内部结构及其运行方式,理解代码的层次结构或布局。

官网:http://www.cycript.org/

3.2.1.1 安装步骤

参考博文:https://www.jianshu.com/p/d93e9fccef4bhttps://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.htmlhttps://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

4. 参考资料

https://www.jianshu.com/p/7ee32399359b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值