iOS逆向之动态调试任意APP,LLDB指令

2022-10-26  本文已影响0人  不安分的夏

指令的格式

<command> [<subcommand> [<subcommand>...]] <action> [-options [option�value]] [argument [argument...]]

<command> :命令
<subcommand> :子命令
<action> :命令操作
<options> : 命令选项
<argument> : 命令参数
ps: 大部分情况下  [ ] 里面的东西是可以省略

举例
给 test 函数设置断点

breakpoint set -n test

breakpoint 是  <command> :命令
set 是 <subcommand> :子命令  /  <action> :命令操作
-n 是 <options> : 命令选项
test 是 <argument> : 命令参数
连在一起的意思就是 下达一个名字为 test 的断点命令

常用指令

    help <command>
        help 后面接指令 查看该指令的用法
        比如 help breakpoint 、help breakpoint set

    expression <cmd-options> -- <expr>    
        执行一个表达式
            <cmd-options> : 命令选项
            -- :命令选项结束符 ,表示前面所有的命令选项已经设置完毕,如果没有命令选项, -- 可以省略
            <expr>   : 需要执行的表达式
        expression 、 expression -- 和指令 print 、p 、 call 的效果一样
        expression -O -- 和指令 po的效果一样  (答应对象)

    thread backtrace
        打印线程的堆栈信息
        和指令 bt 的效果一样
        ps:frame 表示 栈帧 一个frame 表示一帧 即表示一个函数

    thread return [<expr>]
        让函数直接返回某个值,不会执行后面的代码
        [<expr>]有返回值带相对应类型的返回值,没有则不带

    frame variable [<variable-name>]
        打印当前栈帧的变量

    thread continue 、 continue 、c  : 程序继续运行
    thread step-over 、next 、n : 单步运行,把子函数当做整体一步运行,遇到函数会进去
    thread step-in 、step 、s : 单步运行,遇到子函数会进入子函数 遇到函数会跳过
    thread step-out 、finish :直接执行完当前函数的所有代码,返回到上一个函数
    thread step-inst-over 、nexti、 ni
    thread step-inst、stpi、si
    si、ni 和s、n类似 
   
        s 、n 是源码级别
        si 、ni是汇编指令级别

上一篇下一篇

猜你喜欢

热点阅读