control-flow-graph相关内容

在跳转目标基于动态环境值的情况下,如何构建控制流图?

在学习逆向工程时,我经常想到,因为我可以传递任何位置(我有权访问)作为参数,带有一些非硬编码或非确定性目标的跳转指令(因为它以前没有由程序明确定义)可以指向任何地方。因此,如果我用EAX加载一个基于比方说操作系统版本的字符串的值并执行jmp eax,那么任何试图生成控制流图的工具似乎都不知道目标在哪里(它可以基于您的当前环境,但这可能会导致程序中的一些中断路径)。 我错过了什么吗?因为如果我 ..
发布时间:2022-04-16 21:13:37 其他开发

如何检索python代码的控制流图?

我想转储给定 python 代码的控制流图,类似于 gcc 编译器选项给出的选项:-fdump-tree-cfg for c 代码. 我成功获得了python代码的AST(抽象语法树),但是从 AST 阶段获取控制流图看起来相当复杂和麻烦. 有没有更简单的方法可以直接检索python代码的控制流图?有什么建议吗? 哦,顺便说一下,我使用的是 python3.5 谢谢大家! ..
发布时间:2021-11-26 18:01:54 Python

如何使用 antlr 生成 Java CFG(控制流图)?

我正在尝试分析 Java 代码结构. 所以,我使用 ANTLRv3 和 java 语法代码生成了一个 Java 解析器和词法分析器... 但我不知道如何使用生成的解析器和词法分析器生成上下文流图. 我试图通过教程页面学习如何做到这一点,但教程页面已经消失了. 你能给我一个方法吗?或教程页面? 谢谢. 解决方案 AFAIK,ANTLR 没有提供构建控制流图的具体 ..
发布时间:2021-11-11 03:36:54 Java开发

如何从此代码绘制控制流图?

int main() {int i, 等级 = 0;printf("输入点数:\n");scanf ("%d", &i);如果 (i >= 50 && i 50 && i 60 && i 70 && i 80 && i 90 && i 如何从这段代码中绘制控制流图?如果有人可以展示这个过程,我将不胜感激.我能够从一个非常简单的案例中绘制 CFG,但我无法做到这一点.我还需要确定基本路 ..
发布时间:2021-09-06 18:42:01 其他开发

如何使用 Soot 创建控制流图?

一段时间以来,我一直在努力使用 Soot 创建控制流图,而我有点迷失在它的教程中.我一直在尝试将 Soot 用作库或 API,而不是将 Soot 用作 Eclipse 插件. 我想做的是,我有一堆 Java 项目,我想创建/生成这些项目的控制流图.我还看到 Soot 中有一个功能,我可以生成“DOT"格式的控制流图,这对我来说也是可以接受的. 任何展示如何使用 Soot 创建/生成控制 ..
发布时间:2021-08-30 18:31:24 Java开发

从 Radare2 获取完整的二进制控制流图

我想使用radare2获得二进制(恶意软件)的完整控制流图. 我关注了 这篇文章 来自关于 SO 的另一个问题.我想问一下是否有另一个命令代替 ag 提供整个二进制文件的控制流图,而不仅仅是一个函数的图. 解决方案 首先,确保从 git 仓库安装radare2 并使用最新版本: $ git clone https://github.com/radare/radare2.git$ cdr ..
发布时间:2021-07-09 20:56:13 其他开发

如何通过消除蛇行和更好的边缘交叉来影响Graphviz/点以制作更好的控制流图?

我正在为Python程序绘制控制流程图,并希望影响不应跨越的边缘类型.有没有办法做到这一点? 考虑以下简单的Python程序: try: a += 1 except: a += 2 else: a = 3 和一个点程序代表通过 https://github生成的控制流.com/rocky/python-control-flow/ digraph G { ..
发布时间:2020-11-20 19:20:29 其他开发

我的SSA构造正确吗? (重命名)

我一直在学习ssa(静态单分配形式),并且获得了以下插入了phi函数的图,但是该图尚未重命名: 我不得不重命名变量,这就是我得到的: 我非常不确定这是正确的。我是否正确重命名了变量?这是最小的ssa吗?我正在此处(Cytron等人的论文)来重命名变量。请帮忙! :) 解决方案 不,您的图形不正确。 x 和 y 的phi函数和重命名是正确的,问题是临时变量 t1 到 t3 。当输 ..

如果计算流复杂度时控制流程图由多个起始和/或终止节点组成,会发生什么情况

我想知道在控制流程图中有多个开始或停止节点时,它将如何影响环复杂性,如果您能解释环复杂性与开始/停止节点之间的关系,将有很大帮助。 / p> 解决方案 •控制流程图可以由许多开始和停止组成。但是根据麦凯布(McCabe)的理论,如果它由多个起点和终点组成,则不满足该公式。 ..

如何检索python代码的控制流图?

我想转储给定python代码的控制流图 ,类似于gcc编译器选项:-fdump-tree-cfg用于c代码。 我成功获取了python代码的AST(抽象语法树) ,但它接缝非常复杂且麻烦,无法从AST阶段获取控制流图。 是否有更简单的方法直接检索python代码的控制流图? 哦,顺便说一句,我正在使用python3.5 谢谢大家! PS 我真的不知道我正在使用什 ..
发布时间:2020-05-31 22:51:08 Python

如何使用antlr生成Java CFG(控制流图)?

我正在尝试分析Java代码结构. 因此,我通过使用ANTLRv3和Java语法代码生成了Java解析器和词法分析器... 但是我不知道如何使用生成的解析器和词法分析器生成上下文流图. 我试图通过教程页面来学习如何做,但是教程页面已经消失了. 您能给我一种方法吗?或教程页面? 谢谢. 解决方案 AFAIK,ANTLR在构建控制流程图方面没有提供具体帮助. ..
发布时间:2020-05-25 00:32:37 Java开发

使用LLVM为整个源代码生成CFG

LLVM社区中的任何人是否知道是否可以使用opt -dot-cfg foo.ll(.bc)为整个输入源代码生成CFG?由于此函数会为每个函数生成CFG,因此将忽略函数之间的连接. 似乎旧的分析工具已经贬值了. 解决方案 我想知道您是否找到了获取过程间CFG的任何方法.我发现通过其他内联传递来内联调用函数可能会有所帮助,但还无法使它正常工作.我已经张贴了 通过LLVM查找ac/c ++ ..
发布时间:2020-05-02 10:56:51 其他开发

Java控制流图库

我需要在项目中操作Java代码的控制流图。什么可能是一个很好的Java库来生成Java中的控制流图。到目前为止,我已经发现了几个eclipse插件(很大程度上依赖于eclipse API)和独立工具(不能嵌入我的代码中)。 解决方案 用Java生成控制流的工具 ..
发布时间:2018-05-25 17:25:58 Java开发

通过LLVM在c / c ++程序中找到所有可能的路径

我正在尝试通过LLVM在我的程序中找到任何可能的路径。现在我可以找到我的代码中所有函数的入口到出口BB的路径。但这不是我需要的。我需要的是扩展CFG(也许通过内联函数调用?!)有一个CFG的整个源代码和查找路径在这个扩展的CFG。 我想使用-inline pass首先内联所有函数,然后运行我的pathfinder pass但是我观察到-inline只适用于在代码(cpp文件)中明确提到的内联函数 ..
发布时间:2016-11-01 20:33:54 C/C++开发

如何从装配控制流图?

有关的背景下,我试图写从AVM2反编译器(ActionScript虚拟机2)字节code /组装到高层次的ActionScript 3 code。据我所知,这需要我来分析组装和生成由此产生的控制流图,以推断结构,如循环,条件分支(如果/其他)。 由于一些汇编,如: 0 getlocal0 1 pushscope 2 findpropstrict {,私人,} ::跟踪 4 pushstrin ..

通过构建从结果objdump的一个控制流图

我试图构建可通过调用返回的objdump的-d大会结果的控制流图。目前,我已经拿出最好的方法是把结果的每一行成一个链表,并分离出的内存地址,运code和操作数的每一行。我依靠objdump的结果的常规性(内存地址是字符2到重新presents每行的字符串中的字符7)分离出来。 一旦这样做我开始实际CFG指令。在CFG每个节点保存起始和结束存储器地址,一个指针到previous基本块,并指向任何子 ..
发布时间:2016-07-18 20:43:20 .NET Framework