1

给定一个任意可执行文件,是否可以确定部分或全部间接分支目标地址?计算这些目的地的程序化方法是什么?我问是因为我正在从可执行文件中重建 CFG,并且无法找出计算间接分支的干净方法。有时操作数可以通过一点取证分析来确定,但其他时候就不是那么清楚了。

4

1 回答 1

2

通过执行数据流分析以找出地址的可能值,可以静态计算编译程序中可能的间接分支目标。

它可能适用于简单的事情,例如跳转表(通常由 switch 语句生成的那种东西)。

不过,在一般情况下,我认为很难从中获得体面的结果——尤其是因为我怀疑您的分析需要某种堆分析才能具有任何价值,这并不容易,尤其是在组装时这可能充斥着加载和存储到内存。

于 2013-06-26T07:41:25.083 回答