1

遇到了这个问题:解释支配者在逆向工程 Java 代码中的作用。

我能想到的只是你需要能够计算控制图中的支配者,看看它是否可约:

  1. 锻炼支配者
  2. 识别并移除后边缘
  3. 检查剩余的图是否是非循环的

如果图形是无环的 - 它是可还原的。因此所有的循环都是自然循环。如果它不可简化,则代码是非结构化的或优化的。

这听起来对你吗?

4

1 回答 1

2

支配者对程序分析感兴趣的原因有很多,无论您是否将逆向工程作为一种特殊情况。

关键概念是,如果 X 支配 Y,当 Y 被执行时,X 已经被执行。因此,如果您想了解 Y 在做什么,并且 Y 取决于执行它的上下文,那么您可能需要了解 X。

您还需要了解其他一些事情,例如进入 Y 的数据流、程序输入等。这只是一个有用的起点。

有许多使用支配者的分析算法,每种都回答特定类型的问题。很难说这些都是统治者扮演的“(关键)角色”。

于 2012-05-11T21:05:18.673 回答