标记符(Flags)
Radare中的flag类似书签, 将一个名称与文件中的偏移量进行绑定。Flags可以划分为多个标志空间(flags space), 每个标志空间都是一组flags的命名空间, 将具有相似特征或相似类型的flags集中于组内。常见的标志空间有:sections, registers, symbols。
创建一个flag:
[0x4A13B8C0]> f flag_name @ offset可以通过后接-移除一个flag,大多数命令中的-前缀都起到删除的作用。
[0x4A13B8C0]> f-flag_name在标志空间直接切换或创建标志空间使用fs命令:
[0x00005310]> fs?
|Usage: fs [*] [+-][flagspace|addr] # Manage flagspaces
| fs display flagspaces
| fs* display flagspaces as r2 commands
| fsj display flagspaces in JSON
| fs * select all flagspaces
| fs flagspace select flagspace or create if it doesn't exist
| fs-flagspace remove flagspace
| fs-* remove all flagspaces
| fs+foo push previous flagspace and set
| fs- pop to the previous flagspace
| fs-. remove the current flagspace
| fsq list flagspaces in quiet mode
| fsm [addr] move flags at given address to the current flagspace
| fss display flagspaces stack
| fss* display flagspaces stack in r2 commands
| fssj display flagspaces stack in JSON
| fsr newname rename selected flagspace
[0x00005310]> fs
0 439 * strings
1 17 * symbols
2 54 * sections
3 20 * segments
4 115 * relocs
5 109 * imports
[0x00005310]>下面是一些例子:
通过fr可以重命名flag。
局部flag
出于寻址的考虑,每个flag都应该是独一无二的。但是我们也常常需要一些简单而普遍的flag名字,比如在函数内部,类似loop或return这样的标记。为此我们可以使用局部flag,它们仅与它们所在处的函数相关联,可以用f.添加局部flag:
Flag Zones
radare2提供了flag zone的功能,使您可以在滚动条上标记不同的偏移量,从而更方便地浏览大型二进制文件。可以用如下命令在当前偏移量下设置flag zone。
设置scr.scrollbar=1然后进入可视化模式, 可以在窗口右端的滚动条上看到flag zone。参阅 fz? 获取更多相关信息。
最后更新于
这有帮助吗?