一种基于子句匹配的符号执行中约束求解结果重用方法

来源 :武汉大学 | 被引量 : 0次 | 上传用户:tkxj501
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
符号执行是在上世纪70年代提出的一种程序分析技术,用于检验程序是否违反某些属性,因为其可以在复杂软件中寻找深度错误而受到人们的广泛关注。约束求解耗时一直是符号执行的瓶颈之一,约束求解结果重用是一种通过重用已求解约束的求解结果从而有效提高符号执行效率的方法。现有的约束求解结果重用方法采用不同的重用策略实现约束求解结果的重用,但是它们都基于相同的假设:约束在重用中是作为整体不可分割的,即它们都是将约束作为整体进行重用。整体重用实际上严重地限制了符号执行中的重用能力,在符号执行程序产生的约束较为复杂以及程序规模增长时,采用整体重用的策略较难找到相匹配的约束。另一方面,我们看到,符号执行所产生的约束存在非常明显的规律性:大批量的约束中都是由相同和相似的一系列子句组合而成。这是因为符号执行程序生成的约束通常代表了一条执行路径的约束条件,而约束中的子句对应着程序中相应分支的分支条件。程序的路径由不同的程序分支组合而成,于是产生的约束也存在大量的相同或相似子句。这一现象启发我们,基于子句而非整个约束重用,可能是更好的重用策略,可以取得更好的重用效果。基于此,我们提出了一种基于子句而非整体重用的约束求解结果重用方法ClauseCache。ClauseCache基于分解式存储和组合式重用来实现约束的求解结果重用。已求解的约束解被分解为子句解来存储,当为新生成的约束寻找可重用解时,ClauseCache为新约束的每个子句找到一组候选解,然后在子句候选解中找到可行的组合,来满足整体约束。ClauseCache方法可以在更细粒度上进行重用,相对与整体约束重用,具有更好的重用能力。我们从理论上也证明了该方法的重用能力超过了基于等价、基于子集/超集、基于蕴含关系重用三类重用方法。由于子句候选解组合空间巨大,我们通过两步快速过滤操作以及一步启发式探索来达到快速搜索的目的。在为待求解约束查找可重用解时,首先基于“同一个变量在不同子句中的值必须相同”这一原则,对每个变量的候选值做筛选。之后,我们利用变量候选值对各个子句的候选解进行进一步过滤,通过这两步过滤对搜索空间剪枝,有效地缩小需要探索的子句组合解空间。最后通过启发式探索,从过滤之后的子句候选解组合中找到一组可行解。由于快速过滤中使用了大量的集合交并计算,我们采用了两个基于BitSet的索引来将集合计算的复杂度降低到常数级。我们实现了Java版本的ClauseCache,并将其集成到我们开发的Java动态符号执行工具JConcolic中,使其能直接在符号执行程序时重用。ClauseCache可以与jConcolic中的约束切片、约束规范化、约束约减等其他约束优化方法一起使用,通过进一步简化待求解约束来优化约束求解。我们在真实程序集上对ClauseCache的重用效果进行验证,对ClauseCache的绝对重用能力和在实际动态符号执行中的重用能力分别进行了评估。在实际动态符号执行中,又分别在三个典型的重用场景评估了ClauseCache的重用能力和重用效率:(1)单个程序中的重用;(2)跨程序版本重用;(3)跨程序重用。实验表明,ClauseCache的绝对重用能力强于GreenTrie、Klee-R(Klee的重用方法)和Green。在实际的动态符号执行场景中,相比当前最先进的4种重用方法:Green,GreenTrie,Utopia和KLEE的重用方法,ClauseCache也可以显著地改善重用率和查询时间,有效地提高符号执行的效率。
其他文献
无缝钢管是多种高科技设施,例如高铁的建造的基础。而对其进行轧制的技术的掌握高低、是否创新彰显了一个工厂、一个国家的实力。而此中最关键的技术是芯棒限动。工厂能否对芯棒限动的技术有所创新、推进决定了工厂的无缝钢管压制效率、品质能否提升。连轧机器中芯棒限动系统也是PQF中的非常重要环节,壁厚精度、表面质量以及加工效率的提升都需要该系统的支持。每一项技术的发展都是从新创走向成熟的。连轧机器也从一开始的两辊
咖啡因是临床上广泛使用的中枢神经兴奋药物,它的多种8-取代衍生物具有较高的抗肿瘤、抑制MAO-B的生物活性,因此,研究8-取代咖啡因衍生物的新合成方法已经受到更多的关注。本
酸性气田中含有较高的CO2、H2S等腐蚀性物质,这些腐蚀性物质会加重管道的内腐蚀,进而减薄管道壁厚,甚至造成管道泄漏,给油气田带来严重的事故和巨大的经济损失。所以,为了酸
含酚废水等难降解工业废水地大量排放一直是制约我国经济发展的重要因素之一。本文利用聚合物前驱体法制得Sb-SnO2对管式多孔Ti基膜进行改性,采用溶胶凝胶法制得MnOx/Sb-SnO2
本人在三年的研究生期间学习汉藏翻译理论知识和实践的基础上,先后去西藏各大市区进行实地调查,了解目前西藏汉藏交通安全知识翻译的现状,搜集真实、可靠的第一手资料,分析汉
链传动是机械传动中一种重要的传动方式,广泛应用于农业、军工等领域。在某些应用大节距输送链的场合,常常将链条约束在一条预定轨道内,以减小链条振动,提高其工作性能,并延
随着国内高速公路建设重心逐渐向西部及偏远山区偏移,螺旋隧道数量也随之逐渐增加。低温条件下螺旋隧道所在区域雨雪天气多发,导致隧道出口段路面极易出现积水、积雪、结冰现象,驶出隧道车辆极易出现横向滑移等危险,对行驶稳定性产生较大影响。因此,判断车辆在低温雨雪天气下驶出隧道出口段出现失稳的工况,对螺旋隧道设计阶段参数取值及后期的安全运营具有重要意义。论文首先从车辆在隧道内行驶时的前大灯照射范围和隧道长度两
随着新能源大规模接入电力系统,超/特高压远距离、大容量交直流输电系统的建立,系统的同步转动惯量逐渐降低,运行方式更为多变,电力系统稳定问题日益突出,系统在扰动发生后如何快速地恢复正常,成为学者们关注的重点。而传统的基于离线预案的策略表面对目前复杂度不断上升,故障形态趋于多样化的电力系统,表现出了越来越强的不适应性,失配概率呈增大趋势。稳控策略中的故障集有限,统一将交流线路故障视为三相短路故障,忽略
随着中国社会经济与精神物质文明的高速发展以及城市现代化的不断完善,地铁的发展越来越迅速,它能够极大的改善城市交通拥堵等问题。但是地铁线路通常建在地下,环境封闭、客流量大且列车运行速度高,一旦地铁运营的过程中发生事故,将会造成严重的后果。因此,如何建立一套科学、高效的地铁运营安全风险管控体系,实现对地铁运营全过程的风险辨识、分析、评价及控制的闭环式管理,提升地铁运营总体安全风险管控水平,显得尤为重要
四川盆地东北地区下三叠统飞仙关组发育的鲕滩碳酸盐岩优质储层,具有“四高”特点,即孔隙度高、渗透率高、厚度大、丰度高。但由于储层空间展布变化范围大,储层厚度厚薄不均,