有没有工具可以为整个Linux内核二进制文件构建控制流图?例如,考虑为x86架构编译的Linux内核(vmlinux文件)。是否可以仅使用静态分析来确定所有执行路径(忽略间接分支或其他需要运行时信息的控制流)?有没有适合这方面的工具?
发布于 2018-02-02 09:50:48
发布于 2018-02-02 13:50:06
我们的DMS Software Reengineering Toolkit及其C Front End可以做到这一点。
DMS提供通用解析、控制流图和调用图构造;C前端提供特定于C的解析细节,用于构建特定于C的流程图的逻辑包括间接gotos以及已在大约1600万行的代码系统上使用的指向分析,因此它应该处理Linux内核。流程图是针对每个编译单元生成的;调用图是针对一组链接的编译单元生成的。所有这些信息都可以以DMS数据结构的形式提供,如果您坚持,也可以以XML的形式导出,并且可以承受千兆字节的输出。
您可以查看Control flow, Data Flow, and Call graphs的示例。
发布于 2018-02-12 18:06:18
你可以试试CppDepend,它提供了一个功能强大的dependency graph,有很多特性。但是,您必须分析源代码,而不是二进制文件。
https://stackoverflow.com/questions/48573194
复制相似问题