我读过可以使用PIN或Valgrind之类的工具来完成动态检测。但是Valgrind提供了中间表示,并将二进制文件转换为SSA,这使得执行二进制分析更加方便。谁能解释为什么使用SSA表单更方便。为什么在没有中间表示的情况下使用PIN进行动态分析会很困难?

谢谢

#1 楼

回答此问题将需要比提供的空间更多的空间。我想为您提供可以找到的最佳参考,以便深入了解SSA的要求。首先,从Wikipedia开始,以便您熟悉SSA的基本结构和构建基块(Phi职能, ...)。然后,转到1991年发布的参考文章,该文章比Wikipedia文章要冗长一些。

如果您需要更详细的文档(尽管不完整),请阅读本书。
它涵盖了用于构造/破坏以及分析的各种算法。

如果您希望得到一个长/详细的答案,请告诉我,以便我写一个正确的答案。

评论


谢谢@yaspr提供的参考资料,我将仔细阅读。如果您能提到在没有中间代表的情况下进行动态污点分析的缺点,那也将对我有很大帮助。

–user1004985
2015年4月17日在20:42