软件破解中静态分析与动态分析区别为:对象不同、代码覆盖率不同、检测不同。
一、对象不同
1、静态分析:静态分析是对程序文件(非运行状态)行跟踪。
2、动态分析:动态分析是对运行着的程序进行跟踪。
二、代码覆盖率不同
1、静态分析:静态分析有完整的代码覆盖率。无论一个代码块或另一个代码块在执行时获得控制的频率,静态分析都会检查整个代码库。
2、动态分析:动态分析不能保证完整的代码覆盖率。需要向程序中馈入足够的数据以获得更好的结果并获得尽可能多的代码覆盖率。
三、检测不同
1、静态分析:静态分析不利于检测内存泄漏和与并发相关的错误。
2、动态分析:动态分析可以检测复杂的内存处理错误,例如超出数组范围的索引编制和内存泄漏。
扩展资料
程序静态分析是与程序动态分析相对应的代码分析技术,它通过对代码的自动扫描发现隐含的程序问题,主要具有以下特点:
(1)不实际执行程序。动态分析是通过在真实或模拟环境中执行程序进行分析的方法,多用于态裂性能测试、功能测试、内存泄漏测试等余念方面。与之相反,静态分析不运行代码只是通过对代码的静态扫描对程序进行分析。
(2)执行速度快、效率高。目前成熟的代码静态分析工具每秒可扫描上万行代码,相对于动态分析,具有检帆毁闭测速度快、效率高的特点。
(3)误报率较高。代码静态分析是通过对程序扫描找到匹配某种规则模式的代码从而发现代码中存在的问题,例如可以定位strcpy()这样可能存在漏洞的函数,这样有时会造成将一些正确代码定位为缺陷的问题,因此静态分析有时存在误报率较高的缺陷,可结合动态分析方法进行修正。
图形处理软件,显卡扫描软件。
程序余塌静升毁握态分析是与程序动态分析相对应的代码分析技术,它通过对代码的自动扫描发吵庆现隐含的程序问题,主要具有以下特点:
(1)不实际执行程序。动态分析是通过在真实或模拟环境中执行程序进行分析的方法,多用于性能测试、功能测试、内存泄漏测试等方面。与之相反,静态分析不运行代码只是通过对代码的静态扫描对程序进行分析。
(2)执行速度快、效率高。目前成熟的代码静态分析工具每秒可扫描上万行代码,相对于动态分析,具有检测速度快、效率高的特点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)