我在哪里可以了解代码检测?

逆向工程 二元分析 静态分析 动态分析 仪器仪表
2021-06-12 10:19:35

目前我正在学习分析并行程序。所有的分析器都大量使用各种仪器,但这个主题没有得到很好的解释。你知道我可以从哪些好的资源中学习仪器(静态、二进制、动态)?

1个回答

在直接跳转到有趣的文章和资源之前,我将首先定义关键词,以防万一。

  • 静态分析:包括在不执行的情况下分析目标二进制文件。因此static此类分析可用于构建应用程序控制流图调用图等的初稿……例如,构建CFG包括将代码切割成基本块,然后使用分支目标(如果它们'不是间接分支)。

  • 动态分析:包括在二进制文件的关键区域周围插入探测器(函数调用),运行二进制文件并转储探测器的结果。此类探测器可以是x86上的rdtsc指令或任何其他硬件计数器。例如,Gprof使用动态分析来评估在每个功能上花费的时间。许多其他分析器,例如VTuneMAQAODynInst ……使用动态分析来定位热点。

这两种分析都可以应用于二进制文件(即可执行程序),这就是我们所说的二进制分析。另一方面,静态分析可以应用于源代码以及二进制代码。例如,Lint执行静态分析以查找有问题的代码结构。

我可以引用的详细参考资料不多,而是一组涵盖这些技术的使用和好处的科学出版物,以及一些有趣的算法。

对于静态分析,我推荐以下文章集:Static Analysis 20th International Symposium, SAS 2013, Seattle, WA, USA, June 20-22, 2012, Proceedings。

对于动态分析,我建议您阅读有关MAQAODynInstScorePTAU的出版物