iOS逆向——带你深入了解LLDB调试

本文详细介绍了iOS逆向工程中LLDB调试工具的使用,包括LLDB命令、函数调用栈、内存断点、断点命令及ASLR等。通过实例讲解,帮助开发者提升调试效率和理解逆向工程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

日常开发中经常会用到LLDB调试,可能用的最多的命令就是po,而在逆向领域中根本不可能让你在代码中下断点调试,于是乎LLDB就成了非常重要的手段

一、LLDB

LLDB(Low Lever Debug)的缩写,是默认内置于XCode的动态调试工具,它与LLVM编译器一起,存在于主窗口底部的控制台中,能够带给我们更丰富的流程控制和数据检测的调试功能

标准的LLDB提供了一组广泛的命令,旨在与老版本的GDB命令兼容。除了使用标准配置外,还可以很容易的自定义LLDB以满足实际需要

二、LLDB命令

1. LLDB语法
<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument[argument...]]
  • <command>(命令)和<subcommand>(子命令):LLDB调试命令的名称
  • <action>:执行命令的操作
  • <options>:命令选项
  • <arguement>:命令的参数
  • []:表示命令是可选的,可以有也可以没有

比如breakpoint set -n test

  • command:breakpoint表示断点命令
  • action:set表示设置断点
  • option:-n表示根据方法name设置断点
  • arguement:test表示方法名为test

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:834688868,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

如果你正在面试,或者正准备跳槽不妨动动小手,添加一下咱们的交流群:834688868来获取一份详细的大厂面试资料 为你的跳槽加薪多一份保障

2. LLDB初级使用

LLDB命令都是在进入LLDB状态(运行状态下点击“暂停符号”)才能使用生效的 [图片上传失败…(image-6ff20f-1634645644917)]

  • 查看断点列表
    • where是断点所在处
    • address是断点地址
    • option disable断点被禁用
(lldb) breakpoint list

  • 设置单个断点
// 设置c函数的断点
(lldb) breakpoint set -n cMethod
// 设置oc函数的断点
(lldb) breakpoint set -n "[ViewController ocMethod1]"
复制代码

  • 设置一组断点
(lldb) breakpoint set -n "[ViewController ocMethod1]" -n "[ViewController ocMethod2]" -n "[ViewController ocMethod3]"

  • 禁用/启用某一组断点
// 禁用
(lldb) breakpoint disable 1
// 启用
(lldb) breakpoint enable 1

  • 禁用/启用某一个断点
// 禁用
(lldb) breakpoint disable 1.1
// 启用
(lldb) breakpoint enable 1.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值