当我使用类似的命令时fs,我会得到类似的输出
0 0 * strings
1 6 * symbols
2 14 * sections
3 0 * relocs
我很清楚左边是一个代表标志空间的递增数字。我不清楚右边的数字是多少;fs被定义为
Usage: fs [*] [+-][flagspace|addr] # Manage flagspaces
当我使用类似的命令时fs,我会得到类似的输出
0 0 * strings
1 6 * symbols
2 14 * sections
3 0 * relocs
我很清楚左边是一个代表标志空间的递增数字。我不清楚右边的数字是多少;fs被定义为
Usage: fs [*] [+-][flagspace|addr] # Manage flagspaces
正如@blabb 所说,这个数字代表每个标志空间中的标志数量。
所以对于你的例子:
0 0 * strings
1 6 * symbols
2 14 * sections
3 0 * relocs
但更一般地,您的问题的标题询问是否有“一种方法可以使用 Radare 输出获取标题?”,答案是yes。
获取标题
一些radare 的信息性命令(打印信息)向您显示键值输出。以ie打印程序入口点的命令为例:
[0x00400530]> ie
[Entrypoints]
vaddr=0x00400530 paddr=0x00000530 baddr=0x00400000 laddr=0x00000000 haddr=0x00000018 type=program
1 entrypoints
您可以看到每个值都打印有其键(vaddr、paddr、type 等)。
其他命令不会向您显示标题,就像您使用该fs命令的示例一样。那么你能做些什么来显示这些信息呢?简单地说,使用输出的JSON表示。大部分radare2 的信息性命令都可以附加 aj以将输出格式化为JSON。
因此,例如,打印fsj将向您显示 JSON 中的标志空间。我将添加~{}以JSON缩进格式化输出以提高可读性:
[0x00400530]> fsj~{}
[
{
"name": "strings",
"count": 5,
"selected": true
},
{
"name": "symbols",
"count": 36,
"selected": false
},
{
"name": "sections",
"count": 82,
"selected": false
},
{
"name": "relocs",
"count": 6,
"selected": false
},
{
"name": "imports",
"count": 6,
"selected": false
}
]
如您所见,radare 为我们提供了一个简单的 JSON 输出,其中包含每个值的标头(键)。通过这种方式,您可以轻松地发现与没有j.
您是否在查询特定标志空间的计数?
[0x01012d6c]> fs
0 2105 . strings
1 1 . symbols
2 8 * sections
3 381 . relocs
4 381 . imports
5 0 . resources
[0x01012d6c]> fs symbols; f| wc -l
1
[0x01012d6c]> fs sections ; f | wc -l
8
[0x01012d6c]> fs imports ; f | wc -l
381
[0x01012d6c]>