目前在对C/C++漏洞的检测,研究比较深入的是针对源代码的静态扫描技术,主要的静态分析方法有以下几类。 词法分析:是早被用来进行缓冲区溢出漏洞检测的方法。这种方法是对软件源程序进行扫描分析,同时与特征库进行匹配,进而找出软件程序中可能存在的溢出漏洞。这种方法的局限性在于容易产生漏报或误报,并且它也不能理解软件程序的语义。因此需要进一步的进行上下文分析 约束分析:通过产生、求解程序的约束条件,约束分析即可确定程序的性质。约束分析方法建立的局部化约束产生的规则能清楚的描述指令副作用乃至控制条件。但是,这种方法不容易处理精确循环:程序中存在循环,且循环控制条件之间存在依赖关系时,则建