radare2 ascii 图形到图像?

逆向工程 拆卸 雷达2 结构 控制流图 可视化
2021-06-16 06:53:51

在分析一个函数并按下VV进入图形模式后,是否可以将整个图形导出/渲染为图像?

我有一些巨大的主要功能,如果把它们都放在一张图片中会很好。

1个回答

ag命令和命令都可以帮你输出的视觉图形成Graphviz的格式。

[0x00000000]> ag?
Usage: ag<graphtype><format> [addr]  
Graph commands:
| aga[format]             Data references graph
....
| agf[format]             Basic blocks function graph
....

Output formats:
| <blank>                 Ascii art
| *                       r2 commands
| d                       Graphviz dot
| g                       Graph Modelling Language (gml)
| j                       json ('J' for formatted disassembly)
| k                       SDB key-value
| t                       Tiny ascii art
| v                       Interactive ascii art
| w [path]                Write to path or display graph image (see graph.gv.format and graph.web)

例如,您可以将可视化图形输出为点文件,然后将其转换为 PNG。这是从 /bin/ls 的主要功能创建图像的示例:

$ r2 /bin/ls
[0x004049a0]> aa
[x] Analyze all flags starting with sym. and entry0 (aa)
[0x004049a0]> agfd main > graph.dot
[0x004049a0]> !!dot -Tpng -o graph.png graph.dot

dot实用程序是 Graphviz 软件的一部分,可以使用sudo apt-get install graphviz.

您还可以使用agf命令将图形输出到 ascii-graph 中

[0x004049a0]> s main
[0x00402a00]> agf > ascii_graph.txt

此外,如果您只是在寻找一种舒适的方式来查看图形,您可以简单地在 Graphviz 中打开点文件或使用在线 Graphviz 查看器,而不是将其转换为图像文件。