Z3街

郑勇,张X,Ganesh V(2013)Z3 str:一个基于Z3的字符串求解器,用于web应用程序分析。分析web应用程序需要对字符串和非字符串进行连贯的推理。现有的字符串解算器要么忽略非字符串程序行为,要么支持有限的字符串操作集。在本文中,我们开发了一个通用的字符串解算器z3str,作为z3smt解算器的插件接口的扩展。z3str将字符串视为基元类型,从而避免了许多现有解算器中观察到的固有限制,这些解算器根据其他原语对字符串进行编码。插件的逻辑有三种,即bool、int和string。字符串排序项包括字符串常量和任意长度的变量,以及诸如连接、子字符串和替换等函数。int排序的术语是标准的,除了字符串项上的length函数。原子公式是字符串项上的等式,整数项上的(in)等式。我们的解算器不仅具有支持整个程序符号化、静态和动态分析的功能,而且在我们的实验中它的性能也比其他解算器好。z3str在远程代码执行检测中的应用表明,它支持广泛的字符串操作是减少误报的关键。