×

机器码解码和编码的双向语法。 (英语) Zbl 1426.68069号

摘要:二进制分析用于分析机器代码,需要一个解码器将位转换为机器指令的抽象语法。二进制重写需要一个将指令转换为位的编码器。我们提出了一种特定于域的语言,可以在一个双向语法中同时指定解码和编码。对于依赖类型,bigrammar可以提取可执行的解码器和编码器,并提供显示其一致性的正确性证明。大型DSL嵌入Coq中,带有机器检查的证据。我们使用了bigrammar DSL来指定x86-32和MIPS指令集子集的解码和编码。我们还从x86 bigrammar中提取了一个具有竞争力的可执行解码器和编码器。

MSC公司:

68N99型 软件理论
2012年第68季度 语法和重写系统
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 阿巴迪,M.,布迪乌,M。,Ligatti,J.:控制流量完整性。摘自:第十二届ACM计算机和通信安全会议(CCS),第340-353页(2005)
[2] Alimarine,A.,Smetsers,S.,van Weelden,A.,van Eekelen,M.C.J.D.,Plasmeijer,R.:这里和后面:可逆编程箭头。摘自:ACM SIGPLAN Haskell研讨会论文集,第86-97页(2005)
[3] Bergeron,J.、Debbabi,M.、Desharnais,J.,Erhioui,M..、Lavoie,Y.、Tawbi,N.:可执行程序中恶意代码的静态检测。国际期刊要求。工程(2001)·Zbl 1063.68035号
[4] Bohannon,A.,Foster,J.N.,Pierce,B.C.,Pilkiewicz,A.,Schmitt,A.:Boomerang:字符串数据的足智多谋的镜头。摘自:第35届ACM程序设计语言原理研讨会(POPL),第407-419页(2008)·Zbl 1295.68077号
[5] Brabrand,C.、Möller,A.、Schwartzbach,M.I.:XML语言的双重语法。摘自:第十届数据库编程语言国际研讨会(DBPL),第27-41页(2005)·Zbl 1159.68407号
[6] Brumley,D.、Jager,I.、Avgerinos,T.、Schwartz,E.J.:BAP:二进制分析平台。In:计算机辅助验证(CAV),第463-469页(2011)
[7] Brzozowski,J.A.:正则表达式的导数。J.ACM 11,481-494(1964年)·Zbl 0225.94044号 ·数字对象标识代码:10.1145/321239.321249
[8] Christoporescu,M.,Jha,S.:对可执行文件进行静态分析以检测恶意模式。在:第12届Usenix安全研讨会,第169-186页(2003年)
[9] 考证助理。https://coq.inria.fr/ ·Zbl 1039.68543号
[10] Ford,B.:解析表达式语法:基于识别的语法基础。摘自:第31届ACM程序设计语言原理研讨会(POPL),第111-122页(2004)·Zbl 1325.68120号
[11] Fox,A.C.J.:改进了HOL4中机器代码反编译的工具支持。摘自:第六届交互式定理证明国际会议(ITP),第187-202页(2015)·Zbl 1465.68048号
[12] Godefroid,P.,Levin,M.Y.,Molnar,D.A.:自动白盒模糊测试。In:网络和分布式系统安全研讨会(NDSS)(2008)
[13] Jansson,P.,Jeuring,J.:多类型紧凑打印和解析。摘自:第八届欧洲规划研讨会(ESOP),第273-287页(1999)
[14] Jourdan,J.H.,Pottier,F.,Leroy,X.:验证LR(1)解析器。摘自:欧洲规划研讨会(ESOP),第397-416页(2012年)·Zbl 1352.68131号
[15] Kawanaka,S.,Hosoya,H.:biXid:一种用于XML的双向转换语言。摘自:ACM功能编程国际会议(ICFP),第201-214页(2006)·Zbl 1321.68127号
[16] Kennedy,A.:Pickler组合词。J.功能。程序。14(6), 727-739 (2004) ·Zbl 1063.68035号 ·doi:10.1017/S0956796804005209
[17] Kotha,A.,Anand,K.,Smithson,M.,Yellaredid,G.,Barua,R.:二进制重写器中的自动并行化。摘自:2010年IEEE/ACM第43届年度微体系结构国际研讨会论文集,第547-557页(2010)
[18] Kroll,J.,Dean,D.:BakerSFIeld:将软件故障隔离引入x64。www.jkroll.com/papers/bakersfield_sfi.pdf·Zbl 1163.68317号
[19] McCamant,S.,Morrisett,G.:评估CISC架构的SFI。In:第15届Usenix安全研讨会(2006年)
[20] Might,M.,Darais,D.,Spiewak,D.:用衍生物解析:一种功能性珍珠。在:ACM国际功能编程会议(ICFP),第189-195页(2011年)·Zbl 1323.68138号
[21] Morrisett,G.、Tan,G.,Tassarotti,J.、Tristan,J.B.、Gan,E.:岩盐:x86的更好、更快、更强的SFI。摘自:ACM编程语言设计与实现会议(PLDI),第395-404页(2012年)
[22] Owens,S.、Reppy,J.、Turon,A.:正则表达式衍生工具重新审查。J.功能。程序。19, 173-190 (2009) ·Zbl 1163.68317号 ·doi:10.1017/S0956796808007090
[23] Ramsey,N.,Fernández,M.F.:指定机器指令的表示。ACM事务处理。程序。语言系统。19(3),492-524(1997)·数字对象标识代码:10.1145/256167.256225
[24] Rendel,T.,Ostermann,K.:可逆语法描述:统一解析和漂亮打印。摘自:第三届ACM哈斯克尔哈斯克尔研讨会,第1-12页(2010年)
[25] Reps,T.,Lim,J.,Thakur,A.,Balakrishnan,G.,Lal,A.:底部有足够的空间:分析和验证机器代码。In:计算机辅助验证(CAV),第41-56页(2010年)·Zbl 0225.94044号
[26] Sepp,A.,Kranz,J.,Simon,A.:GDSL:用于解释机器语言的通用解码器规范语言。在:自动程序分析工具,第53-64页(2012)
[27] Song,D.、Brumley,D.、Yin,H.、Caballero,J.、Jager,I.、Kang,M.G.、Liang,Z.、Newsome,J.,Poosankam,P.、Saxena,P.:BitBlaze:通过二进制分析实现计算机安全的新方法。摘自:第四届信息系统安全国际会议记录(2008年)
[28] Tan,G.,Morrisett,G.:机器码解码和编码的双向语法。摘自:第八届国际验证软件会议:理论、工具和实验(VSTTE),第73-89页(2016年)·Zbl 1426.68069号
[29] Wahbe,R.、Lucco,S.、Anderson,T.、Graham,S.:高效的基于软件的故障隔离。摘自:ACM SIGOPS操作系统原理研讨会(SOSP),第203-216页。纽约ACM出版社(1993)
[30] Wartell,R.,Mohan,V.,Hamlen,K.W.,Lin,Z.:通过与编译器无关的二进制重写保护不受信任的代码。摘自:第28届年度计算机安全应用会议记录,第299-308页(2012年)
[31] Xu,Z.,Miller,B.,Reps,T.:机器代码的安全检查。In:ACM编程语言设计与实现会议(PLDI),第70-82页(2000)
[32] Yee,B.,Sehr,D.,Dardyk,G.,Chen,B.,Muth,R.,Ormandy,T.,Okasaka,S.,Narula,N.,Fullagar,N.:本机客户端:用于可移植、不受信任的x86本机代码的沙盒。In:IEEE安全与隐私研讨会(S&P)(2009年)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。