是否有任何工具可以为整个 Linux 内核二进制文件构建控制流图?例如,考虑为 x86 架构编译的 Linux 内核(vmlinux 文件)。是否可以仅使用静态分析来确定所有执行路径(忽略间接分支或其他需要运行时信息的控制流)?有没有适合这个的工具?
问问题
1222 次
4 回答
1
我们的DMS 软件重组工具包及其C 前端可以做到这一点。
DMS 提供通用解析、控制流图和调用图构建;C 前端提供特定于 C 的解析细节,构建特定于 C 的流程图的逻辑包括间接 goto 以及已在大约 1600 万行代码系统上使用的指向分析,因此它应该处理 Linux内核。每个编译单元生成一个流程图;调用图用于一组链接的编译单元。所有这些信息都可以作为 DMS 数据结构使用,和/或如果您坚持并且可以承受千兆字节的输出,则可以导出为 XML。
您可以查看控制流、数据流和调用图的示例。
于 2018-02-02T05:50:06.120 回答
0
GrammaTech CodeSonar 可以对二进制代码 ( https://www.grammatech.com/products/binary-analysis )执行静态分析,它允许您可视化和导航控制流图。虽然这是一个商业工具。
于 2018-02-09T19:19:48.243 回答