×

单片机代码的抽象解释:区间满足同余。 (英语) Zbl 1284.68167号

概要:按位指令、循环和间接数据访问对微控制器程序的验证提出了挑战。特别是,由于寄存器通常是内存映射的,因此有必要表明间接存储操作不会意外改变寄存器。为了证明这一点和相关的性质,本文提倡使用位线性同余的域与区间结合来获得精确的距离信息。本文认为,在对微控制器代码进行推理时,这两个领域是相辅相成的。本文还解释了如何使用SAT求解(与二分法搜索一起应用)从二进制代码中恢复分支条件,从而进一步改进区间分析。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
第68季度第60季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[2] 巴格纳拉,R。;多布森,K。;希尔,P。;蒙代尔,M。;Zaffanella,E.,《网格:数值分布分析领域》,(Logic-Based Program Synthesis and Transformation.Logic-Based-Program Syntensation and Transformation,LOPSTR.Logic-Based Program Synthesis&Transformation.基于逻辑的程序合成与转换,LOPSTRA,计算机科学讲义,第4407卷(2006),Springer),219-235·Zbl 1196.68042号
[3] 拜尔,C。;Katoen,J.-P.,《模型检验原理》(2008),麻省理工学院出版社·Zbl 1179.68076号
[5] Balakrishnan,G。;代表,T。;基德,N。;Lal,A。;Lim,J。;梅尔斯基,D。;Gruian,R。;Yong,S.-H。;Chen,C.H。;Teitelbaum,T.,《使用CodeSurfer/x86和WPDS++对x86可执行文件进行模型检查》,(计算机辅助验证。计算机辅助验证,CAV。计算机辅助检验,CAV,计算机科学讲义,第3576卷(2005),Springer),158-163·Zbl 1081.68604号
[6] Balakrishnan,G。;Reps,T.W.,WYSINWYX:《你所看到的不是你所做的》,《美国计算机学会编程语言与系统学报》,32,6(2010)
[7] Balakrishnan,G。;代表,T.W。;梅尔斯基,D。;Teitelbaum,T.,WYSINWYX:你所看到的并不是你所做的(VSTTE 2005)。VSTTE 2005,计算机科学讲稿,第4171卷(2005),Springer),202-213
[8] 球,T。;库普夫曼,O。;Sagiv,M.,《抽象存在下的跳跃循环》,(CAV.CAV,《计算机科学讲义》,第4590卷(2012年),施普林格出版社),491-503·Zbl 1135.68465号
[9] Bardin,S。;Herrmann,P。;Leroux,J。;赖氨酸。;表,R。;Vincent,A.,二进制代码分析的BINCOA框架,(CAV.CAV,计算机科学讲义,第6806卷(2011),Springer),165-170
[10] Bardin,S。;Herrmann,P。;Védrine,F.,从非结构化程序重构基于精炼的CFG,(VMCAI.VMCAI,计算机科学讲义,第6538卷(2011),Springer),54-69·兹比尔1317.68028
[11] 巴雷特,E。;King,A.,使用SAT进行范围和集合抽象,《理论计算机科学电子笔记》,267,1,17-27(2010)·Zbl 1342.68067号
[12] 比亚拉斯,S。;J.布劳尔。;金·A。;Kowalewski,S.,《带闭包的循环跳跃》(SAS.SAS,《计算机科学讲义》(2012),斯普林格出版社)
[13] 博兹加,M。;费尔南德斯,J.-C。;Ghirvu,L.,基于活变量分析的状态空间约简,(静态分析研讨会。静态分析研讨会,SAS。静态分析会议。静态分析讨论会,SAS,计算机科学讲稿,第1694卷(1999),Springer),164-178·Zbl 0957.68080号
[14] J.布劳尔。;King,A.,使用布尔公式自动提取间隔,(静态分析研讨会。静态分析研讨会,SAS。静态分析会议。静态分析讨论会,SAS,计算机科学讲稿,第6337卷(2010),Springer),167-183·兹比尔1306.68020
[15] J.布劳尔。;King,A.,《无量词消除的传递函数合成》,(欧洲编程研讨会。欧洲编程研讨会,ESOP。欧洲编程论坛。欧洲编程会议,ESOP,计算机科学讲稿,第6602卷(2011年),Springer),97-115·Zbl 1326.68080号
[16] J.布劳尔。;金·A。;Kowalewski,S.,使用位级同余的微控制器代码范围分析,(工业关键系统的形式化方法。工业关键系统形式化方法,FMICS。工业关键性系统的形式方法。工业临界系统的形式性方法,FMIC,计算机科学讲义,第6371卷(2010),施普林格),82-98
[17] J.布劳尔。;金·A。;Kriener,J.,作为增量SAT的存在量化,(CAV.CAV,计算机科学讲义,第6806卷(2011),Springer),191-207
[18] J.布劳尔。;诺尔,T。;Schlich,B.,《使用硬件和软件的抽象解释进行微控制器代码的区间分析》,(嵌入式系统的软件和编译器。嵌入式系统软件和编译器,SCOPES(2010),ACM出版社)
[19] Brumley,D。;贾格尔,I。;Avgerinos,T。;Schwartz,E.J.,BAP:二进制分析平台,(CAV.CAV,《计算机科学讲义》,第6806卷(2011年),施普林格出版社),463-469
[20] 克拉克,E.M。;格伦伯格,O。;Peled,D.,《模型检验》(2001),麻省理工学院出版社
[21] 科迪什,M。;泻湖,V。;Stuckey,P.J.,《可满足性逻辑编程,逻辑编程理论与实践》(TPLP),8,1,121-128(2008)·Zbl 1128.68014号
[22] 科贝特,J.C。;德怀尔,M.B。;哈特克利夫,J。;Robby,Bandera:模型检查Java程序的源级接口,(软件工程国际会议,国际软件工程会议,ICSE(2000),ACM出版社),762-765
[23] 库索特,P。;库索特,R.,《抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型》,(《程序设计语言原理》,POPL(1977),ACM出版社),238-252
[24] 库索特,P。;库索特,R。;Feret,J。;Mauborgne,L。;Mine,A。;Monniaux,D。;Rival,X.,《Asterée分析器》(《编程语言与系统》,ESOP,《编程语言和系统》,《ESOP,计算机科学讲义》,第3444卷(2005),Springer),21-30·Zbl 1108.68422号
[25] 库索特,P。;库索特,R。;Feret,J。;Mauborgne,L。;Mineé,A。;对手X,为什么阿斯特拉要扩大规模?,系统设计中的形式方法,35,3,229-264(2009)·Zbl 1185.68241号
[26] 库索特,P。;Halbwachs,N.,程序变量之间线性约束的自动发现,(程序设计语言原理。程序设计语言原理,POPL(1978),ACM出版社),84-97
[27] 达斯,M。;勒纳,S。;Seigle,M.,ESP:多项式时间内的路径敏感程序验证,(编程语言设计与实现,编程语言设计和实现,PLDI(2002),ACM出版社),57-68
[28] 德布雷,S。;穆斯,R。;Weippert,M.,可执行代码的别名分析,(编程语言原理.编程语言原理,POPL(1998),ACM出版社),12-24
[29] 艾德,E。;Regehr,J.,《Volatiles is miscompiled,and what to do about it》(嵌入式软件。嵌入式软件,EMSOFT(2008),ACM出版社),255-264
[30] Elder,M。;Lim,J。;Sharma,T。;安徒生,T。;Reps,T.,仿射关系的抽象域,(SAS.SAS,计算机科学讲义,第6887卷(2011年),Springer),198-215
[31] Elder,M。;Lim,J。;Sharma,T。;安徒生,T。;Reps,T.W.,仿射关系的抽象域,(SAS.SAS,计算机科学讲义,第6887卷(2011年),Springer),198-215
[32] 恩格尔,D.R。;B.Chelf。;Chou,A。;Hallem,S.,《使用特定于系统的程序编写编译器扩展检查系统规则》,(操作系统设计与实现。操作系统设计和实现,OSDI(2000),ACM出版社),1-16
[33] Flexeder,A。;Mihaila,B。;Petter,M。;Seidl,H.,跨过程控制流重建,(亚洲编程语言与系统研讨会,亚洲编程语言和系统研讨会, 188-203
[34] Godefroid,P.,《使用偏序改进自动验证方法》,(CAV.CAV,《计算机科学讲义》,第531卷(1990),施普林格出版社),176-185·Zbl 0765.68122号
[35] 戈潘,D。;代表,T。;Sagiv,M.,数组运算数值分析框架,(编程语言原理.编程语言原理,POPL(2005),ACM出版社),338-350·Zbl 1369.68138号
[36] Granger,P.,算术同余的静态分析,国际计算机数学杂志,30,13,165-190(1989)·Zbl 0679.68022号
[37] Granger,P.,程序变量间线性同余等式的静态分析,(TAPSOFT.TAPSOFT,计算机科学讲义,第493卷(1991),Springer),169-192·Zbl 0967.68509号
[38] Gulavani,B.S。;Henzinger,T.A。;Kannan,Y。;Nori,A.V。;Rajamani,S.K.,SYNERGY:一种新的属性检查算法,(SIGSOFT FSE(2006),ACM出版社),117-127
[39] Gulwani,S。;麦克洛斯基,B。;Tiwari,A.,将抽象解释器提升到量化的逻辑领域,(编程语言原理。编程语言原理,POPL(2008),ACM出版社),235-246·Zbl 1295.68085号
[40] Havelund,K。;Pressburger,T.,使用java探路器检查java程序的模型,STTT,2,4,366-381(2000)·Zbl 1059.68585号
[41] Huuck,R。;Fehnker,A。;Seefried,S。;Brauer,J.,Goanna:语法软件模型检查,(验证和分析自动化技术。验证和分析自动技术,ATVA。验证和解析自动技术。验证与分析自动化技术,ATA,计算机科学讲稿,第5311卷(2008),Springer),216-221
[42] Karr,M.,程序变量之间的仿射关系,信息学报,6133-151(1976)·Zbl 0358.68025号
[43] 金德,J。;维思,H。;Zuleger,F.,从二进制文件重建控制流的基于抽象解释的框架,(验证、模型检验和抽象解释。验证、模型校验和抽象解释,VMCAI.验证、模型检查和抽象解释;验证、模型检测和抽象解释),VMCAI,计算机科学讲义,第5403卷(2009),Springer),214-228·Zbl 1206.68091号
[44] 金·A。;Söndergaard,H.,《使用SAT推断同余方程》,(计算机辅助验证。计算机辅助验证,CAV。计算机辅助检验。CAV,计算机科学讲义,第5123卷(2008),斯普林格),281-293·Zbl 1155.68441号
[45] 金·A。;Söndergaard,H.,同余的自动抽象,(验证、模型检验和抽象解释。验证、模型校验和抽象解释,VMCAI.验证、模型检查和抽象解释;验证、模型校核和抽象解释),VMCAI,计算机科学讲义,第5944卷(2010),施普林格),281-293·Zbl 1273.68085号
[46] Kroening,D。;北卡罗来纳州Sharygina。;托内塔,S。;Tsitovich,A。;Wintersteiger,C.M.,《使用抽象变换器的循环摘要》,(ATVA.ATVA,计算机科学讲稿,第5311卷(2008),Springer),111-125·Zbl 1183.68377号
[47] Kroening,D。;斯特里奇曼,O.,《决策程序》(2008),施普林格·Zbl 1149.68071号
[48] 薰衣草,V。;Logozzo,F.,《次多面体:推断线性不等式的(更)可扩展方法》,(VMCAI.VMCAI,计算机科学讲义,第5403卷(2009),Springer),229-244·Zbl 1206.68092号
[50] Lim,J。;Reps,T.W.,《为机器指令生成静态分析器的系统》,(CC.CC,《计算机科学讲义》,第4959卷(2008年),施普林格出版社),第36-52页
[51] Monniaux,D.,线性约束的自动模块化抽象,(POPL(2009),ACM出版社),140-151·Zbl 1315.68102号
[52] Monniaux,D.,模板数字约束的自动模块化抽象,计算机科学中的逻辑方法,6,3(2010)·Zbl 1191.68182号
[53] Monniaux,D.,通过惰性模型枚举消除量词,(CAV.CAV,计算机科学讲义,第6174卷(2010年),Springer),585-599
[54] 缪勒·奥尔姆(Müller-Olm,M.)。;Seidl,H.,《模块算术分析》,(《欧洲程序设计研讨会》,《欧洲程序开发研讨会》,ESOP,《欧洲编程研讨会》,第3444卷(2005),Springer),46-60页·Zbl 1108.68404号
[55] 缪勒·奥尔姆(Müller-Olm,M.)。;Seidl,H.,《模块算法分析》,《程序设计语言和系统ACM汇刊》,29,5(2007)
[56] Plaisted,D.A。;Greenbaum,S.,《保留结构的从句形式翻译》,符号计算杂志,2,3,293-304(1986)·Zbl 0636.68119号
[57] 雷格尔,J。;Reid,A.,《提升机:嵌入式系统静态分析器自动推导系统》,《操作系统评论》,38,5,133-143(2004)
[58] 雷格尔,J。;A.里德。;Webb,K.,通过抽象解释消除堆栈溢出,(嵌入式软件,嵌入式软件,EMSOFT(2003)),306-322
[59] Reinbacher,T.等人。;Brauer,J.,使用布尔逻辑进行精确控制流重建,(EMSOFT(2011),ACM出版社),117-126
[60] 代表,T。;Balakrishnan,G.,《改进x86可执行文件的内存访问分析》(Compiler Construction.Compiler Construction,CC.Compiler Construction.Compiler Consstruction,CC,计算机科学讲义,第4959卷(2008),Springer),16-35
[61] 代表,T。;霍维茨,S。;Sagiv,M.,《通过图形可达性进行精确过程间数据流分析》,(POPL(1995),ACM出版社),49-61
[62] 代表,T。;萨吉夫,M。;Yorsh,G.,最佳变压器的符号实现,(验证、模型检验和抽象解释。验证、模型校验和抽象解释,VMCAI.验证、模型检查和抽象解释:验证、模型校核和抽象解释),VMCAI,计算机科学讲义,第2937卷(2004),Springer),252-266·Zbl 1202.68255号
[63] 罗比;德怀尔,M.B。;Hatcliff,J.,《茂物:创建软件模型检查器的灵活框架》(TAIC PART(2006),IEEE计算机社会出版社),3-22
[64] 桑卡拉纳拉亚南,S。;Sipma,H。;Manna,Z.,基于约束的线性关系分析,(SAS.SAS,计算机科学讲义,第3148卷(2004),Springer),53-68·Zbl 1104.68023号
[65] Schlich,B.,微控制器软件的模型检查,嵌入式计算机系统ACM事务,9,4,1-27(2010)
[66] Schlich,B。;J.布劳尔。;Kowalewski,S.,《状态空间缩减静态分析在微控制器二进制代码中的应用》,《计算机编程科学》,76,2100-118(2011)·Zbl 1213.68390号
[67] Schlich,B。;Kowalewski,S.,嵌入式系统的模型检查C源代码,STTT,11,3,187-202(2009)
[68] Schlich,B。;诺尔,T。;J.布劳尔。;Brutschy,L.,减少模型检查嵌入式软件的中断处理程序执行,(海法验证会议,海法验证大会,计算机科学讲稿,第6405卷(2009),Springer),5-20
[70] Simon,A.,用布尔标志拆分控制流,(静态分析研讨会。静态分析研讨会,SAS。静态分析会议。静态分析讨论会,SAS,计算机科学讲稿,第5079卷(2008),Springer),315-331·Zbl 1149.68367号
[71] 西蒙,A。;King,A.,Taming the wrapping of integer algorithm,(Static Analysis Symposium.静态分析研讨会,SAS。静态分析研讨会。SAS,计算机科学讲稿,第4634卷(2007),Springer),121-136·Zbl 1211.68102号
[72] 西蒙,A。;金·A。;Howe,J.M.,每个不等式抽象域的两个变量,高阶和符号计算,23,1,87-143(2010)·Zbl 1232.68030号
[73] 宋,D.X。;Brumley,D。;尹,H。;卡巴列罗,J。;贾格尔,I。;Kang,M.G.先生。;Liang,Z。;Newsome,J。;Poosankam,P。;Saxena,P.,BitBlaze:通过二进制分析实现计算机安全的新方法,(ICISS.ICISS,《计算机科学讲义》,第5352卷(2008年),Springer),1-25
[74] Thakur,A.V。;Lim,J。;Lal,A。;A.伯顿。;Driscoll,E。;Elder,M。;安徒生,T。;Reps,T.W.,机器代码的定向证明生成,(CAV.CAV,计算机科学讲义,第6174卷(2010),施普林格),288-305
[75] Tseitin,G.S.,《论命题演算中推导的复杂性》,(Slisenko,A.O.,《建构数学和数理逻辑研究》,第二卷(1968),115-125·Zbl 0197.00102号
[76] Valmari,A.,《状态爆炸问题》(Petri Nets.Petri Nets,《计算机科学讲义》,第1491卷(1996),Springer),429-528
[78] Yang,X.先生。;陈,Y。;艾德,E。;Regehr,J.,《发现和理解C编译器中的错误》(PLDI(2011),ACM出版社),283-294
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。