iOS反编译用到的命令

一.LLDB(Low Lever Debug)

1.设置断点

$breakpoint set -n XXX(xxx为方法) 

set 是子命令

-n 是选项 是--name 的缩写!

给test1设置断点 :breakpoint set -n test1

iOS反编译用到的命令_第1张图片

给三个方法同时设置断点

breakpoint set -n "-[ViewController save:]" -n "-[ViewController pauseGame:]" -n "-[ViewController continueGame:]"

*注意:简写形式 $b -n "-[ViewController touchesBegan:withEvent:]",通过地址下端的:$b -a x0xxxxxxx(函数地址)

iOS反编译用到的命令_第2张图片

或者 b hankTest4 (也是简写形式)

-(void)hankTest4{

    NSLog(@"%s",__func__);

}

2. 查看断点列表

$breakpoint list 

*注意:$break list(简写形式)

iOS反编译用到的命令_第3张图片

3.删除

$breakpoint delete 组号(删除某一组断点)

$breakpoint delete(删除所有断点)

4.禁用/启用

$breakpoint disable 组号 (禁用)(breakpoint disable 2:禁用第二组断点,breakpoint disable 2.1 :禁用第二组断点中的第一个断点)

*注意:break dis 组号 (简写形式)

$breakpoint enable  组号 (启用)

*注意:break en 组号 (简写形式)

5.查看lldb指令: $help

查看breakpoint指令:  $help breakpoint

6.遍历整个项目中满足Game:这个字符的所有方法

$breakpoint set -r Game:

7.直接给某个方法设置断点

$breakpoint set --selector touchesBegan:withEvent:

8.给某个文件中的某个方法设置断点

 $breakpoint set --file ViewController.m --selector touchesBegan:withEvent:

###流程控制

*继续执行

$ c (continue)

*单步运行,将子函数当做整体一步执行

$n  (next)

*单步运行,遇到子函数会进去

$s 

$ bt (查看栈信息)

###stop-hook

让你在每次stop的时候去执行一些命令,只对breadpoint(代码断点),watchpoint(内存断点

)

*注意:可在所有满足条件的断点处使用 ,设置一次给多个方法打印信息

iOS反编译用到的命令_第4张图片


iOS反编译用到的命令_第5张图片


iOS反编译用到的命令_第6张图片

###常用命令

*$image list 

*$p

*$b -[xxx xxx](给方法设置断点:b -[ViewController hankTest4]

*$x (memory read)

iOS反编译用到的命令_第7张图片

*$register read 寄存器读

*$po


iOS反编译用到的命令_第8张图片


iOS反编译用到的命令_第9张图片
iOS反编译用到的命令_第10张图片
iOS反编译用到的命令_第11张图片
iOS反编译用到的命令_第12张图片


iOS反编译用到的命令_第13张图片
iOS反编译用到的命令_第14张图片
iOS反编译用到的命令_第15张图片
iOS反编译用到的命令_第16张图片
iOS反编译用到的命令_第17张图片
iOS反编译用到的命令_第18张图片
iOS反编译用到的命令_第19张图片
iOS反编译用到的命令_第20张图片
iOS反编译用到的命令_第21张图片

给某个方法设置,打印相关信息

iOS反编译用到的命令_第22张图片
iOS反编译用到的命令_第23张图片

真机时遇到异常信息

iOS反编译用到的命令_第24张图片


iOS反编译用到的命令_第25张图片
iOS反编译用到的命令_第26张图片

通过函数地址查看函数反汇编代码


iOS反编译用到的命令_第27张图片

你可能感兴趣的:(iOS反编译用到的命令)