找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 614|回复: 0

MacOS上使用IDA+LLDB+ret-sync联合调试iOS

[复制链接]
发表于 2024-7-16 16:08:06 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×

前言

  安全行业可大致分为网络安全和二进制安全,二进制安全按层次可分为系统安全,软件安全,框架安全和硬件安全,如果按平台分类又可分为Windows安全,Android安全,iOS安全等。网络安全主要是利用已知漏洞进行扫描,依赖于内核漏洞和常用软件漏洞。在二进制分析中,需要用到静态分析工具,动态调试工具,跟踪工具及其他工具。静态分析和动态跟踪是相辅相成的,因为二进制通常比较大,所以要结合动态分析找到关键点,而动态调试可能会因为有反调试反跟踪技术失败,此时需要静态分析去除并修改二进制或进行注入Hook来绕过检测。动态调试是基于指令级别的,一般情况下效率较低,此时需要进行函数级别的跟踪则需要用到跟踪工具或注入Hook

  • 静态分析. IDAPro, Hopper, Ghidra, BinaryNinja, BinNavi, Radare, Capstone, RetDec等, 这些工具主要针对编译型语言,而解释性语言都有自己专用工具如Jadx, JEB, dnSpy
  • 动态调试. WinDbg, OllyDbg, X64Dbg, GDB, LLDB, Unicorn等
  • 跟踪工具. DynamicRIO, IntelPin, Frida等

  笔者常用工具集组合为IDAPro + LLDB + Frida,这是在MacOS上进行iOS二进制分析的最小工具集。当然很多人因为搞不定IDAPro的"BUG"或者觉得无法显示高级语法或其他奇奇怪怪的原因而转去用Hopper,这是Hopper存在一定用户的原因。而LLDB则是远程调试iOS的唯一选择。为什么iOS要进行远程调试而不是本地调试呢(即直接在iOS上调试)?其实早期确实有iOS版的gdb能进行调试,但因为设备环境的局限性,这种方式比较低效,而MacOS上则有极其丰富的工具可选,所以最佳方案就是在MacOS上远程调试iOS。MacOS上最佳静态分析工具依然是IDA,但IDA的iOS远程调试套件功能较差,但LLDB调试功能较强,如何结合IDA和LLDB呢?这就是ret-synchttps://github.com/bootleg/ret-sync,ret-sync通过自建通信协议,将调试器的状态同步给静态分析工具,从而实现联合调试。ret-sync支持:IDA/Ghidra/BinaryNinja/WinDbg/GDB/LLDB/OllyDbg/X64Dbg.

使用

  关于IDA+LLDB+ret-sync联合调试iOS的相关文章,笔者曾在2021年在简书上简略分享过,这里重新详细介绍一下。  

  1. 安装ret-sync到IDAPro和LLDB. 需要确定IDAPro/LLDB自带Python的位置,LLDB可以执行script import sys;print(sys.version);print(sys.path).
git clone https://github.com/bootleg/ret-sync.git
cd ret-sync
cp -rfp ext_ida/* /Applications/IDAPro/ida.app/Contents/MacOS/plugins/
cp -rfp ext_lldb/* /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/
# 将rsconfig.py中的PY_LINUX_DEFAULTS设置为正确的Python路径
  1. 配置ret-sync到IDAPro和LLDB
  • LLDB. command script import sync
  • IDAPro. Plugins -> ret-sync
  1. 调试
  • LLDB启动远程调试,并断在目标模块中,IDA静态分析目标模块
  • LLDB执行sync命令
  • IDAPro中同步,此时可以看到LLDB将当前指令同步给IDA,同时IDA下断点也同步给LLDB

  开始愉快的玩耍

回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-12-21 21:56 , Processed in 0.028530 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表