美文网首页
iOS逆向-18:LLDB调试

iOS逆向-18:LLDB调试

作者: 恍然如梦_b700 | 来源:发表于2021-05-19 23:53 被阅读0次

在逆向环境中,拿不到源码,只能通过指令设置断点

LLDB(Low Lever Debug)

默认内置于Xcode中的动态调试工具。标准的 LLDB 提供了一组广泛的命令,旨在与老版本的 GDB 命令兼容。 除了使用标准配置外,还可以很容易地自定义 LLDB 以满足实际需要。

这里列举了一些常用的命令:

断点设置

  • 设置断点
    breakpoint set -n XXX
    set 是子命令
    -n 是选项 是--name 的缩写!

  • 查看断点列表
    breakpoint list

  • 删除
    breakpoint delete 组号

  • 禁用/启用
    breakpoint disable 禁用
    breakpoint enable 启用

  • 遍历整个项目中满足Game:这个字符的所有方法
    breakpoint set -r Game:

流程控制

  • 继续执行
    continue c

  • 单步运行,将子函数当做整体一步执行
    n next
    单步运行,遇到子函数会进去
    s

  • stop-hook
    让你在每次stop的时候去执行一些命令,只对breadpoint,watchpoint

  • 其他命令
    image list
    p expression 除了打印还可以执行一些代码
    b -[xxx xxx]
    x16进制打印
    register read 读寄存器
    po
    b -r xx断住所有包含的方法
    b -selector xx断住所有xx方法
    help xx查看指令

函数调用栈

bt //所有调用栈
up //跳上层堆栈
down
frame select 12 跳指定下标堆栈
frame variable 当前函数参数,只能修改当前函数参数
thread return 代码回滚,直接返回,不执行后面的代码。提前返回,可以通过这种方式绕过hook

内存断点

Person *person = [Person new];
person.name = "FY";

下内存断点:
watchpoint set variable person->_name
watchpoint set expression 0x456 &person->_name
当进行修改的时候就会触发内存断点

image.png
然后我们bt一下
image.png
可以看到方法的调用栈
break command add 1
在断点中添加一些指令

让你在每次stop的时候去执行一些命令,只对breadpoint,watchpoint
target stop-hook add -o "frame variable"
target stop-hook add -o "po self.view"
target stop-hook list

这些指令也可以放到家目录下的.lldbinit中,只要lldb一启动就会执行里面的命令,一般的lldb插件就是在这个目录配置的

cd ~ 进入家目录
.lldbinit

相关文章

  • 2019年iOS逆向最新学习资料(三):强大的断点调试工具

    1、强大的lldb 上文我们说到了调试。在iOS逆向中,很多人推荐debugserver + lldb 其实调试只...

  • iOS逆向-18:LLDB调试

    在逆向环境中,拿不到源码,只能通过指令设置断点 LLDB(Low Lever Debug) 默认内置于Xcode中...

  • iOS逆向之HOOK原理介绍

    上一篇文章地址: iOS逆向之动态调试 (LLDB)介绍 上篇文章讲了如何使用LLDB进行动态调试. 如果你对文...

  • LLDB调试命令

    一、LLDB 正向开发与逆向都经常会用到LLDB调试,而熟悉LLDB调试对正向、逆向开发都有很大的帮助,尤其是动态...

  • iOS逆向--LLDB调试

    一、断点:breakPoint 项目开发者最常用的就是断点调试,但是我们一般都是在代码的某一行点一下下个断点,我们...

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • iOS逆向开发(四)----LLDB,ASLR

    iOS逆向开发(四)----LLDB,ASLR 我们常常需要动态调试app,通过xcode安装的app都支持动态调...

  • iOS高级调试&逆向技术

    iOS高级调试&逆向技术 iOS高级调试&逆向技术

  • ptrace反调试

    一、iOS调试 iOS调试里面非常常见的就是LLDB调试,LLDB是Xcode自带的调试工具,既可以本地调试Mac...

  • IOS逆向_动态调试:LLDB

    1. LLDB简介; 2. 常用的LLDB语法; 1. LLDB简介: 1.1 概念: LLDB是Xcod...

网友评论

      本文标题:iOS逆向-18:LLDB调试

      本文链接:https://www.haomeiwen.com/subject/vrupjltx.html