afl
实际输出了什么。这些文档令人惊讶地没有提供信息。因此,我在第一列中有地址,在最后一列中有符号。第二,第三和第四列是什么?
示例:
:> afl
0x08048000 29 988 -> 937 segment.LOAD0
0x080483dc 3 35 func_5
0x08048410 1 6 sym.imp.fgets
0x08048420 1 6 sym.imp.fclose
0x08048430 1 6 sym.imp.fwrite
0x08048440 1 6 sym.imp.puts
0x08048450 1 6 loc.imp.__gmon_start
0x08048460 1 6 sym.imp.exit
0x08048470 1 6 sym.imp.__libc_start_main
0x08048480 1 6 sym.imp.fopen
0x08048490 1 6 sym.imp.fileno
0x080484a0 1 6 sym.imp.ptrace
0x080484b0 1 33 entry0
0x080484e0 1 4 func_3
0x080484f0 4 42 func_4
0x08048642 4 51 func_1
0x08048675 10 83 func_2
0x080486c8 4 194 main
#1 楼
首先,我将直接回答您的问题:第二列:函数中基本块的数量
第三列:函数的大小(以字节为单位)
第4列:函数的名称
您可能已经使用“ 4th”来标识“->”之后的数字。在这种情况下,如果有“->”,则左边的数字是函数的范围,而右边的数字是函数的大小。仅当范围和大小不同时才会发生。
但是现在有了更通用的方法。正如您所注意到的,radare2的某些命令不会向您显示表的列标题,就像
afl
命令的示例一样。那么,您可以怎么显示这些信息呢? 使用JSON输出
简单地,使用输出的JSON表示。可以将大多数radare2的信息性命令附加一个j,以将输出格式化为JSON。添加〜{}以使用JSON缩进来格式化输出以提高可读性:
例如:我们提供了一个简单的JSON输出,其中包含每个值的标头(键)。使用与没有
j
的输出相对应的标题名称,您可以轻松理解每一列是什么。它会以详细模式和易于理解的表格列出二进制文件的功能:标头名称。
评论
非常有用,谢谢。您能否说明afll上的线条着色是什么意思?
–rgcalsaverini
18年6月26日在10:21
afll。真漂亮!
–rustyMagnet
19年12月10日在16:01