目前我正在学习分析并行程序。所有的分析器都大量使用各种仪器,但这个主题没有得到很好的解释。你知道我可以从哪些好的资源中学习仪器(静态、二进制、动态)?
我在哪里可以了解代码检测?
逆向工程
二元分析
静态分析
动态分析
仪器仪表
2021-06-12 10:19:35
1个回答
在直接跳转到有趣的文章和资源之前,我将首先定义关键词,以防万一。
静态分析:包括在不执行的情况下分析目标二进制文件。因此
static。此类分析可用于构建应用程序控制流图、调用图等的初稿……例如,构建CFG包括将代码切割成基本块,然后使用分支目标(如果它们'不是间接分支)。动态分析:包括在二进制文件的关键区域周围插入探测器(函数调用),运行二进制文件并转储探测器的结果。此类探测器可以是x86上的rdtsc指令或任何其他硬件计数器。例如,Gprof使用动态分析来评估在每个功能上花费的时间。许多其他分析器,例如VTune、MAQAO、DynInst ……使用动态分析来定位热点。
这两种分析都可以应用于二进制文件(即可执行程序),这就是我们所说的二进制分析。另一方面,静态分析可以应用于源代码以及二进制代码。例如,Lint执行静态分析以查找有问题的代码结构。
我可以引用的详细参考资料不多,而是一组涵盖这些技术的使用和好处的科学出版物,以及一些有趣的算法。
对于静态分析,我推荐以下文章集:Static Analysis 20th International Symposium, SAS 2013, Seattle, WA, USA, June 20-22, 2012, Proceedings。
其它你可能感兴趣的问题