{“状态”:“确定”,“消息类型”:“工作”,“信息版本”:“1.0.0”,“邮件”:{“索引”:{“日期-部件”:[[2023,10,17]],“日期-时间”:“2023-10-17T05:12:05Z”,“时间戳”:1697519525820},“参考-计数”:54,“出版商”:“计算机协会(ACM)”,“问题”:“OOPSLA2”,“资助者”:[{“DOI”:“10.13039\/1000000001”,“名称”:“NSNSL F“,”DOI-asserted-by“:“publisher”,“adward”:[“CCF-2008369”],“id”:[{“id”:“10.13039\/100000001”,“id-type”:“DOI”,“asserted-by”:“publicher”}]},{“name”:“NSF”,“award”:[”CCF-1619282“]}],“content-domain”:{“domain”:[”dl.acm.org“],“crossmark-restriction”:true},“short-container-title”:[)Proc.acm Program.Lang.“],“published-print”:{“date-parts”:[[2023,10,16]]},“abstract”:“本文考虑回调可达性问题——确定事件驱动框架是否可以在意外状态下调用回调。\nEvent-driven编程框架在几乎所有现代平台上创建用户交互应用程序(app)方面都很流行。\回调之间的nControl流由框架决定,对程序员来说基本上是不透明的。\回调控制流的这种不透明性不仅给程序员带来困难,也给开发静态分析的人员带来困难。\以前的静态分析技术通过假设任意框架实现或尝试急切地指定所有可能的回调控制流来解决这种不透明性,但这要么太粗糙,无法证明需要回调顺序约束的属性,要么太繁琐,难以正确处理。\此外,我们还提供了一种中间方法,在该方法中,回调控制流可以以有针对性的方式逐渐细化,以证明感兴趣的断言。\获得这种中间方法的关键洞察力是通过推理应用程序和框架代码之间边界处的方法调用历史——实现回调控制流规范与应用程序代码分析的解耦。\我们调用这种边界方法调用消息历史的序列,并开发消息历史逻辑来进行这种推理。\特别地,我们定义了具有边界转换的仅应用程序转换系统的概念,用于具有此类转换的程序的消息历史程序逻辑,以及用于以有针对性的组合方式捕获回调控制流的时间规范逻辑。\为了利用目标导向验证器中的逻辑,我们定义了一种将事后消息历史断言与回调控制流规范相结合的方法。\nWe实现了一个名为Historia的基于消息历史的原型验证器,并提供了证据,证明我们的方法能够在从现实世界问题中提取的具有挑战性的示例上独特地区分错误版本和固定版本,并且我们的有针对性的规范方法能够证明真实世界的开源Android应用程序<\/jats:p>“,”DOI“:”10.1145\\3622865“,”type“:”期刊文章“,”已创建“:{”日期部分“:[[2023,10,16],”日期时间“:”2023-10-16T15:41:29Z“,”时间戳“:1697470889000},”page“:”1905-1934“,”update policy“:”http:\/\/dx.DOI.org/10.1145\\crosmark policy“,”source“:”Crossref“,”由count引用“:0,”title“:[”Historia:使用Message-History Logics拒绝回拨“],”前缀“:”10.1145“,”卷“:”7“,”作者“:[{”ORCID“:”http://\/ORCID.org\/00000-0002-1349-4316“,”authenticated-ORCID“:false,”给定“:”Shawn“,”family“:”Meier“,”sequence“:”first“,”affiliation“:[[{“name”:“University of Colorado Boulder,USA”}]},{“ORCID”:“”http:\/\/orcid.org\/0000-0003-1029-9547“,”authenticated-orcid“:false,”given“:”Sergio“,”family“:”Mover“,”sequence“:”additional“,”affiliation“:[{”name“:”\u00c9cole Polytechnique-CNRS-Institute Polytech de Paris,Palaiseau,France“}]},{”orcid“:“:”Kaki“,”sequence“:”additional“,”affiliation“:[{”name“:”University of Colorado Boulder,USA“}]},{”ORCID“:”http://\/ORCID.org\/0000-0002-1954-0774“,”authenticated-ORCID“:false,”given“:“Bor-Yuh Evan”,“family”:“Chang”,“sequence”:“additional”,“affiliance”:[{“name”:“University on of Colorato Boulder、USA、Amzon、Boulder”}]],“成员“:”320“,”published-online“:{“date-parts”:[[2023,10,16]]},“reference”:[{“key”:“e_1_1_1,1”,“doi-asserted-by”:“publisher”,“doi”:“10.1007\/978-3642-31057-7_30”},{“密钥”:“e_1_1_1_1”,2_1_3_1“,”非结构化“:“Android开发者。2022。活动生命周期。https:\/\/developer.android.com//guide\/components\/activities\/activity-lifecycle\t\t\t\t android开发者。2022.活动生命周期。https:\/\/developer.android.com//guide\/components\/activities\/activity-lifecycle“},{“key”:“e_1_2_4_1”,“unstructured”:“android Developers.2022。类别索引(API级别32)。https:\/\/developer.android.com\/reference\/classes\t\t\t android开发者。2022.类别索引(API等级32)。https:\/\/developer.android.com/reference\/classes“},{”key“:”e_1_1_5_1“,”doi-asserted-by“:”publisher“,“doi”:“10.1145\/2884781.2884816”},“key”:“e_2_1_6_1”,“doi-assert-by”:“publisher”,”doi“:”10.1145 \/2594291.2594299“}”,{“key:”e_ 1_7_1“10.1145\/2491956.2462186“},{“key”:“e_1_2_1_8_1”,“doi-asserted-by”:“publisher“,”DOI“:”10.1145 \/2814270.2814293“},{“key”:“e_1_1_9_1”,“DOI-asserted-by”:“publisher”,”DOI:“10.1145 \/2771284.2771288”},“{”key“:”e_2_1_10_1“,“doiasserted-by“:”publisher DOI“:”10.1007\/978-3-319-17524-9_1“},{“键”:“e_1_2_1_12_1”,“doi-asserted-by“:”publisher“,”doi“:”10.1109\/EuroSP.2016.16“},{“key”:“e_1_2_1_13_1”,“doi-assert-by”:“crossref”,”unstructured“:”Yinzhi Cao Yanick Fratantonio Antonio Bianchi Manuel Egele Christopher Kruegel Giovanni Vigna and Yan Chen.2015。EdgeMiner:通过Android框架自动检测隐含控制流转换。网络和分布式系统安全(NDSS)。\t\t\t\t曹寅志Yanick Fratantonio Antonio Bianchi Manuel Egele Christopher Kruegel Giovanni Vigna和Yan Chen。2015.EdgeMiner:通过Android框架自动检测隐含控制流转换。网络和分布式系统安全(NDSS)。“,”DOI“:”10.14722\/ndss.2015.23140“},{”key“:”e_1_1_14_1“,”DOI-asserted-by“:”publisher“,“DOI”:“10.1007\/978-3-540-78800-3_24”},“key”:“e_1_i_15_1”,“DOI-assert-by”:“publisher”,”DOI:“10.1145\/33338112”}、{”密钥“:”d_1_16_1“、”非结构化“:”F-Droid.2023。F-Droid-免费开源Android应用程序库。https:\/\/www.f-droid.org访问时间:2023-01-30\t\t\t f-droid。2023.F-Droid-免费开源Android应用程序库。https:\/\/www.f-droid.org访问时间:2023-01-30“},{“key”:“e_1_2_1_17_1”,“volume-title”:“Feed Remover:Don\u2019t let the user cancel the ProgressDialog by mfeetz-Pull Request#1306-AntennaPod\/TennaPod.https:\/\/github.com\/AtennaPod_AntennaPod\/Pull\/1306\/files”,“author”:“Fietz Martin”,年:“2015”,“unstructured”:“马丁·菲茨。2015 . 提要移除器:不要让用户通过mfeetz取消ProgressDialog-Pull Request#1306-AntennaPod。https:\/\/github.com/AntennaPod\/AntennaPod\/pull\/1306\/files Martin Fietz。2015.Feed Remover:不要让用户通过mfeetz取消ProgressDialog-Pull Request#1306-AntennaPod。https:\/\/github.com/AntennaPod\/AntennaPod\/pull\/1306\/files“},{“key”:“e_1_2_1_18_1”,“unstructured”:“Martin Fietz.2016。修复解除IllegalArgumentException的问题。https:\/\/github.com/AntennaPod\/AntennaPod\/issues\/2148\t\t\t Martin Fietz。2016.修复驳回IllegalArgumentException。https:\/\/github.com/AntennaPod\/AtennaPod_/issues\/2148“},{“key”:“e_1_1_19_1”,“unstructured”:“Martin Fietz.2018。2855当碎片被mfetz销毁时,取消UI媒体信息更新-Pull Request#2856-AntennaPod\/AtennaPod。https:\/\/github.com/AntennaPod\/AntennaPod\/pull\/2856\/files\t\t\t Martin Fietz。2018.2855当碎片被mfeetz销毁时,取消UI媒体信息更新-Pull Request#2856-AntennaPod。https:\/\/github.com\/AntennaPod\/AntennaPod\/pull\/2856\/files“},{“密钥”:“e_1_2_1_20_1”,“非结构化”:“Martin Fietz.2018。ExternalPlayerFragment被销毁后的非法状态异常-问题#2855-AntennaPod\/AtennaPod。https:\/\/github.com\/AntennaPod\/AntennaPod\/问题\/2855\t\t\t\tMartin Fietz。2018.ExternalPlayerFragment被销毁后的非法状态例外-问题#2855-AntennaPod。https:\/\/github.com/AntennaPod\/AtennaPod_/issues\/2855“},{“key”:“e_1_1_21_1”,“volume-title”:“Foster”,“author”:“Fuchs Adam P.”,年:“2009”,“unstructured”:“Adam P.Fuchs,Avik Chaudhuri,and Jeffrey S.Foster。2009。SCanDroid:Android应用程序的自动安全认证。马里兰大学,学院公园。Adam P。Fuchs、Avik Chaudhuri和Jeffrey S.Foster。2009年SCanDroid:Android应用程序的自动安全认证。马里兰大学帕克分校。“},{“key”:“e_1_2_1_22_1”,“volume-title”:“有限迹上的线性时间逻辑和线性动态逻辑。在国际人工智能联合会议(IJCAI)上。”,“author”:“Giacomo Giuseppe De”,“unstructured”:“朱塞佩·德·贾科莫和Moshe Y。瓦尔迪。2013 . 有限迹上的线性时间逻辑和线性动态逻辑。在国际人工智能联合会议(IJCAI)上。朱塞佩·德贾科莫(Giuseppe De Giacomo)和莫舍·瓦尔迪(Moshe Y.Vardi)。2013.有限迹上的线性时间逻辑和线性动态逻辑。在国际人工智能联合会议(IJCAI)上。“},{”key“:”e_1_2_1_23_1“,”doi-asserted-by“:”crossref“,“unstructured”:“Michael I.Gordon Deokhwan Kim Jeff Perkins Limei Gilham Nguyen-Nguyen and Martin Rinard,2015。DroidSafe中Android应用程序的信息流分析。在网络和分布式系统安全(NDSS)中。\t\t\t\t迈克尔·I·戈登·迪奥万·金杰夫·帕金斯·利梅·吉尔哈姆·阮和马丁·里纳德。2015年,DroidSafe中Android应用程序的信息流分析。在网络和分布式系统安全(NDSS)中。“,”DOI“:”10.14722\/ndss.2015.23089“},{”key“:”e_1_2_1_24_1“,”unstructured“:”Byte Hamster.2020。在将控制器设置为空之前,请先处理加载程序。https:\/\/github.com/AntennaPod\/AntennaPod\/pull\/4325\t\t\t字节仓鼠。2020年。在将控制器设置为空之前,处理装载机。https:\/\/github.com/AntennaPod\/AntennaPod\/pull\/4325“},{“key”:“e_1_1_25_1”,“doi-asserted-by”:“publisher”,”doi“:”10.1145\/3173162.3173173“}”,{”key“:”e_1_i_1_26_1“,”doi-assert-by“:”publisher“,:“publisher”,“doi”:“10.1145\/360204.375719”},{“key”:“e_1_2_1_28_1”非结构化”:“凯特·基希·杰森·安德森·卓(Kate Keahey Jason Anderson Zhoo Zhen)、皮埃尔·里托(Pierre Riteau)、保罗·鲁斯·丹·斯坦齐奥·默特·塞维克·雅各布·科莱兰·哈里亚迪(Mert Cevik Jacob Colleran Haryadi S.Gunawi Cody Hammock)、乔·马姆布雷蒂(Joe Mamb。2020年,变色龙试验台的经验教训。在USENIX。\凯特·基希·杰森·安德森·卓(Kate Keahey Jason Anderson Zhoo Zhuo Zhen)、皮埃尔·里托(Pierre Riteau)、保罗·鲁斯·丹·斯坦齐奥·默特·塞维克·雅各布·科莱兰·哈里亚迪(Mert Cevik Jacob Colleran Haryadi S.Gunawi Cody)、哈莫克·乔·曼布雷蒂(Joe Mambretti)、亚历山大·巴。2020年,变色龙试验台的经验教训。在USENIX。“},{”key“:”e_1_1_29_1“,”doi-asserted-by“:”publisher“,“doi”:“10.1007\/978-3642-40885-4_15”},“key”:“e_2_1_30_1”,“doi-assert-by”:“publisher”,”doi“:”10.1145\/2516760.2516769“}”,{,{“键”:“e_1_2_1_32_1”,“doi-asserted-by”:“出版商”,“doi”:“10.1007\/978-1-4612-0931-7“},{“key”:“e_1_2_1_33_1”,“unstructured”:“马里亚纳海沟。2022。马里亚纳海沟。https:\/\/mariana-tren.ch\/\t\t\t\t马里亚纳海沟。2022.马里亚纳海沟。https:\/\/mariana-tren.ch\/“},{“key”:“e_1_2_1_34_1”,“unstructured”:“Shawn Meier.2021。修复退出终端时出现的空指针异常。https:\/\/github.com//connectbot\/connectorbot\/pull\/1016\t\t\t肖恩·迈耶。2021.修复退出终端时出现的空指针异常。https:\/\/github.com/connectbot\/connectbot \/pull\/1016“},{“key”:“e_1_1_35_1”,“doi-asserted-by”:“publisher”、“doi”:“10.4230\/LIPIcs.ECOOP.2019.1”}、{“密钥”:“e_1_2_1_36_1”、”doi-assert-by“:”publisher“,”doi“10.5281_/zenodo.8331516”},“key“:”e_2_37_1“,“volume-title”:“”Historia:使用消息历史逻辑(扩展版本)拒绝回调可访问性。arxiv:2309.04464“,”author“:”Meier Shawn“,”year“:”2023“,”unstructured“:”Shawn Meier、Sergio Mover、Gowtham Kaki和Bor-Yuh Evan Chang。2023 . Historia:使用消息历史逻辑(扩展版本)拒绝回调可访问性。arxiv:2309.04464肖恩·迈尔(Shawn Meier)、塞尔吉奥·莫弗(Sergio Mover)、格瑟姆·卡基(Gowtham Kaki)和鲍尔·尤·埃文·张(Bor-Yuh Evan Chang)。2023.Historia:拒绝使用消息历史逻辑实现回调(扩展版)。arxiv:2309.04464“},{“key”:“e_1_2_1_38_1”,“doi-asserted-by”:“publisher”,”doi“:”10.1145\/3140568“}”,{”key“:”e_1_i_1_39_1“,”doi-assert-by“:”publisher“,“doi”:“10.1145\/3368089.3409699”},“key“:”e_2__1_401_1“,”doi-asserted-by“”:”publicher“,”doi:“10.1145\/329382.3339001”},{“键”:“e_1_2_1_41_1”,“doi-asserted-by”:“出版商”,“doi”:“10.1145\/2543728.2543748“},{“key”:“e_1_2_1_42_1”,“doi-asserted-by”:“publisher”,”doi“:“10.1109\/TSE.2019.2893207”},“key“:”e_1_i_1_43_1“,”doi-assert-by“:”publisher“,“doi”:“10.1007\/978-3642-39799-8_54”}\/3-540-48959-2_21“},{“key”:“e_1_2_1_45_1”,“doi-asserted-by”:“publisher”,”DOI“:”10.1016\/S1571-0661(04)80088-4“},{”key“:”e_1_1_46_1“,”DOI-asserted-by“:”publisher“,“DOI”:“10.1016\/S0950-5849(98)00093-7”},“key”:“e_1_i_1_47_1”,“DOI-assert-by”:“publisher”,”DOI“:”10.1109\/LICS.2002.1029817“}”,{“key“:”e_2_1_48_1“”,“DOI-asserte-by”:“发布者”,“DOI”:“10.1145\/2544137.2544159”},{“密钥”:“e_1_2_1_49_1”,“DOI-asserted-by”:“publisher“,”DOI“:”10.1016\/j.ic.2016.08.002“},{“key”:“e_1_2_1_50_1”,“volume-title”:“CASCON会议记录”,“author”:“Vall\u00e9e-Rai Raja”,”年份“:”1999“,”非结构化“:”Raja Vall\u00e9e-Rai、Laurie Hendren、Vijay Sundaresan、Patrick Lam、Etienne Gagnon和Phong Co.,1999年。Soot—一个Java优化框架。1999年CASCON会议记录。Raja Vall\u00e9e-Rai、Laurie Hendren、Vijay Sundaresan、Patrick Lam、Etienne Gagnon和Phong Co.,1999年。Soot-一个Java优化框架。在《1999年CASCON会议录》中。“},{“key”:“e_1_2_1_51_1”,“doi由”:“publisher”断言,“doi”:“10.1145\/2931021.2026”},{“key”:“e_1_2_1_52_1”,“doi由”:“publisher”断言,“doi”:“10.1109\/ICST.2019.00035”},{“key”:“e_1_2_1_53_1”,“doi由”:“publisher”断言,“doi”:“10.1007\\s10515-018-0237-6”},{“键”:“e_1_2_1_54_1“,“doi-asserted-by”:“publisher”,“doi”:“10.1109\/ICSE.2015.31”}],“container-title”:[“ACM关于编程语言的会议记录”],“原始标题”:[],“language”:“en”,“link”:[{“URL”:“https:\/\/dl.ACM.org\/doi\/pdf\/10.1145\/3622865”,“content-type”:“unspecified”,“内容-版本”:“vor”,“intended-application”“:”相似性检查“}],“deposed“:{“date-parts”:[[2023,10,16]],“date-time”:“2023-10-16T15:43:21Z”,“timestamp”:1697471001000},“score”:1,“resource”:{”primary“:{“URL”:“https:\/\/dl.acm.org\/doi\/10.1145\/3622865”}},”subtitle“:[],”shortitle“[],“issued”:{“date-ports”:[2023,10,16]]},‘references-count’:54,“新闻发布”:{“发布”:“OOPSLA2”,“发布发布”:date-parts“:[[2023,10,16]]}},”alternative-id“:[”10.1145\/3622865“],”URL“:”http://\/dx.doi.org\/10.1145\/3628865“,”relation“:{},“ISSN”:[”2475-1421“],“ISSN-type”:[{“value”:“2475-14201”,“type”:“electronic”}],“subject”:【】,“published”:{“date-part”:[2023,10,16]},“断言”:[{“value”:“2023-10-16”,“order”:2,“name”:“published”,“label”:“published”,“组“:{”name“:”publication_history“,”label“:”publication history“}}]}}