美文网首页
iOS逆向之旅(进阶篇) — 工具(LLDB)

iOS逆向之旅(进阶篇) — 工具(LLDB)

作者: 洪呵呵_ | 来源:发表于2018-10-19 17:01 被阅读0次
    简介

    LLDB是个开源的内置于XCode的调试工具,给我们平时开发调试带来很大的便利,同时它对我们逆向分析别人的APP同样有很大的帮助。
    LLDB的使用其实看LLDB官方文档就可以了

    这篇文章我就把常用的指令列举出来,方便日后查阅

    断点操作

    【为C函数下断点】
    $b set -n "C函数名"
    【为OC方法下断点】
    $b set -n "-[OC类 方法名:]"
    【遍历整个项目中,为所有同名的所有方法下断点】
    $b set -r 方法名:
    【查看断点列表】
    $b list
    【断点禁用/启用】
    $breakpoint disable
    $breakpoint enable
    【继续执行】
    $continue c
    【单步运行,将子函数当做整体一步执行】
    $n next
    $s 单步运行,遇到子函数会进去
    【查看指令的用法】
    $help [cmd]
    【内存访问断点】
    $watchpoint set variable p1->name
    $watchpoint set expression 0x312315(一个内存地址)
    注:断下之后可以通过bt查看堆栈信息,达到了解是从哪修改了内存

    内存操作

    【查看当前内存/修改当前内存】
    $expression self.view.subViews
    $p self.view.subViews
    $p self.view.backgroudColor = [UIColor redColor];
    注意:
    p是expression的缩写,并不是print
    po 的o是代表打印该类的description

    【stop-hook - 让你在每次stop的时候去执行一些命令,只对breadpoint,watchpoint】
    $target stop-hook list
    $target stop-hook add -o "frame variable"
    $target stop-hook delete
    【查看代码段】
    $image lookup -a 0x102110226 //汇编的地址
    $image lookup -t Person //快速查看一个类
    $image list //系统加载的各种文件信息
    【内存查看】
    $memory read 0x地址(缩写是:x)

    堆栈操作

    【堆栈操作】
    $bt //查看堆栈列表
    $up //断下后才可以使用 往函数上一层
    $down //断下后才可以使用 往函数下一层
    $frame select index //定位到第index层的代码位置
    $frame variable 查看所有参数,可以通过p进行修改
    $thread return 代码回滚到上一层,并退出

    相关文章

      网友评论

          本文标题:iOS逆向之旅(进阶篇) — 工具(LLDB)

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