As @blabb said, this number represents the amount of flags in each flagspace.
So for your example:
0 0 * strings
1 6 * symbols
2 14 * sections
3 0 * relocs
- The flagspace "strings" has 0 flags
- The flagspace "symbols" has 6 flags
- The flagspace "sections" has 14 flags
- The flagspace "relocs" has 0 flags
But more generally, the title of your question asks whether there's "a way to get the headers with the Radare output?", the answer for this is yes.
Getting the headers
Some of radare's informative commands (which print information) shows you a key-value output. Take for example the ie
command to print the entrypoints of the program:
[0x00400530]> ie
[Entrypoints]
vaddr=0x00400530 paddr=0x00000530 baddr=0x00400000 laddr=0x00000000 haddr=0x00000018 type=program
1 entrypoints
You can see that each value is printed with its key (vaddr, paddr, type and so on).
Other commands would not show you the headers, just as your example with the fs
command. So what can you do to show this information? Simply, use the JSON representation of the output. Most of radare2's informative commands can be appended with a j
to format the output as JSON.
So, for example, printing fsj
will show you the flagspaces in JSON. I'll add ~{}
to format the output with JSON indention for readabilty:
[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
}
]
As you can see, radare presents us with a simple JSON output that contains the headers (keys) for each value. This way you can easily spot the "count" header which is corresponding to the output without j
.