反汇编界面
导航
在反汇编界面中可以用方向键或hjkl
进行移动,g
可以用于跳转到flag所在位置或者某个偏移位置上,当出现[offset]>
提示符时就可进行输入了。 在本例中按下1
将会跟随sym.imp.__libc_start_main
,也就是跳转到该符号所在的偏移量上。
可以用u
返回到上一个位置,U
则可以用于重现刚刚的跳转操作。
d
as define
d
as defined
可以用于改变当前块的数据类型,支持多种基本的类型和结构,若需要更复杂的数据结构可以使用pf
模板。
可以改变radare2在反汇编中显示的数据类型以获得更佳的可读性,默认情况下大部分的数值都是以16进制表示的。有时你可能需要以十进制、二进制显示,或者将其作为一个自定义的常量显示。可以使用d
键,然后按下i
键选择进制,这个操作与ahi
是等效的:
使用光标进行插入/修补...
要记住,若想编辑加载的文件需要以-w
选项启动radare2,否则该文件处于只读模式下。
按下小写的c
键可以切换到光标模式,在该模式下选中的字节(或者说字节范围)会以高亮显示。
光标通常用于选择一个范围内的字节,或者仅仅是标记某个字节。可以跳转到目标地址上,按下f
键然后输入flag名字在该位置上创建一个flag。 如果以写模式(-w
选项或者o+
命令)打开文件,还可以覆写光标选中的字节。首先选中一个范围内的字节(按住SHIFT然后使用HJKL移动),然后按下i
键,输入十六进制值,则会用该值覆盖选中的范围,举个例子:
则选中的十个字节会变为"12 34 12 34 12 ...".
可视化汇编器能在输入新指令进行patch时可以提供一个实时的预览。若要开启该功能则跳转到想要patch的地方,或者将光标移到该处,然后按下A
,多条指令需要用;
将各条指令分割开。
交叉引用(XREF)
radare2在分析时发现的XREF都会显示在反汇编界面里,并有一个XREF
标签:
按下x
可以找到字符串的引用位置。若想跳转到数据的引用处则在键盘上按下数据对应的数字[0-9]。(该功能类似axt
)
X
代表逆操作,即axf
。
显示参数
可以将配置变量设置为true启用该功能 e dbg.funcarg = true
添加注释
按下;
可以添加注释。
调用其它命令
想快速调用其它命令可以按:
.
搜索
/
: 在当前输出中高亮搜索的字符串 :cmd
通过这个可以使用"/?"下的命令进行更精确的搜索。
控制界面
"用户友好型"界面
可以通过??
快捷键进入用户友好型界面中(特别是对于新手来说),该面板相当于一个备忘录,方便你查找命令并运行。对于老手来说,其它专用的界面可能更好用一些。
"flag/注释/函数/.. 界面"
可以用_
键显示该面板,该界面中会列出定义的所有flag,并允许你直接跳转到对应位置。可以通过键盘输入快速过滤出匹配的flag。
使用^C
可以关闭输入模式,不输入任何字符串就按下backspace
时将会退出面板。
配置反汇编视图的样式
反汇编的显示风格和样式取决于"asm.*"变量,可以用e
命令对这些变量进行修改,也可以通过可视化模式中的变量编辑器对这些变量进行修改。
可视化变量编辑器
该面板可以通过在可视化模式下按e
键进入,在编辑器里可以很容易地查看并修改radare2变量。例如我们想修改反汇编的输出结果,首先在列表里选择asm
,然后浏览并选择想修改的变量,按下Enter
键对该变量进行修改。如果该变量是个bool值,那么其将会显示一个下拉条,其他的则会提示输入一个新值。
切换到伪汇编输出:
底下是一些与反汇编相关的变量。
例子
asm.arch: 设置架构 && asm.bits: 设置汇编器中字的大小
可以用e asm.arch=?
列出所有架构。
这个设置位数的命令还可以通过可视化模式中的&
完成。
asm.pseudo: 启用伪代码格式
asm.syntax: 选择汇编语言的语法 (intel, att, masm...)
asm.describe: S显示操作码的描述
最后更新于
这有帮助吗?