面向崩溃理解的调试日志倒向切片分析

Ma Chi
{"title":"面向崩溃理解的调试日志倒向切片分析","authors":"Ma Chi","doi":"10.1145/3384544.3384560","DOIUrl":null,"url":null,"abstract":"Debugging costs almost half of the development time of programmers. To understand what happened in the buggy execution, one has to backtrack on the execution history, examine suspicious behaviours one by one and finally locate the key symptom. Accelerating this searching procedure will largely reduce the debugging time. In this paper, I propose a backward slicing method to reason the cause of the memory crash on the source code execution trace. It iteratively finds the last modification of new tainted seeds in a thin data slicing style and generates the interprocedural data dependency graph. The slicing method can perform inner function alias analysis and a cross procedural argument tainting analysis. The call sites of dynamic function pointers or call sites expanded by macros are also handled in a heuristic way. I demonstrate the efficacy of method by applying the proto-type system ClueHunter in the vulnerability analysis procedure of 7 open-source projects. The tracing method reduce the amount of code to inspect by 94% for trace-based crash analysis.","PeriodicalId":200246,"journal":{"name":"Proceedings of the 2020 9th International Conference on Software and Computer Applications","volume":"83 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-02-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Backward Slicing Analysis on Debug Log for Crash Comprehension\",\"authors\":\"Ma Chi\",\"doi\":\"10.1145/3384544.3384560\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Debugging costs almost half of the development time of programmers. To understand what happened in the buggy execution, one has to backtrack on the execution history, examine suspicious behaviours one by one and finally locate the key symptom. Accelerating this searching procedure will largely reduce the debugging time. In this paper, I propose a backward slicing method to reason the cause of the memory crash on the source code execution trace. It iteratively finds the last modification of new tainted seeds in a thin data slicing style and generates the interprocedural data dependency graph. The slicing method can perform inner function alias analysis and a cross procedural argument tainting analysis. The call sites of dynamic function pointers or call sites expanded by macros are also handled in a heuristic way. I demonstrate the efficacy of method by applying the proto-type system ClueHunter in the vulnerability analysis procedure of 7 open-source projects. The tracing method reduce the amount of code to inspect by 94% for trace-based crash analysis.\",\"PeriodicalId\":200246,\"journal\":{\"name\":\"Proceedings of the 2020 9th International Conference on Software and Computer Applications\",\"volume\":\"83 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-02-18\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 2020 9th International Conference on Software and Computer Applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3384544.3384560\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2020 9th International Conference on Software and Computer Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3384544.3384560","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

调试几乎花费了程序员一半的开发时间。要了解在错误执行中发生了什么,必须回溯执行历史,逐一检查可疑行为,最终找到关键症状。加速这个搜索过程将大大减少调试时间。在本文中,我提出了一种反向切片方法来推断源代码执行跟踪中内存崩溃的原因。它以瘦数据切片的方式迭代地发现新污染种子的最后修改,并生成过程间数据依赖图。切片方法可以进行内部函数别名分析和跨过程参数污染分析。动态函数指针的调用点或由宏展开的调用点也采用启发式方式处理。通过将原型系统ClueHunter应用于7个开源项目的漏洞分析过程,验证了该方法的有效性。跟踪方法将基于跟踪的崩溃分析所需检查的代码量减少了94%。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Backward Slicing Analysis on Debug Log for Crash Comprehension
Debugging costs almost half of the development time of programmers. To understand what happened in the buggy execution, one has to backtrack on the execution history, examine suspicious behaviours one by one and finally locate the key symptom. Accelerating this searching procedure will largely reduce the debugging time. In this paper, I propose a backward slicing method to reason the cause of the memory crash on the source code execution trace. It iteratively finds the last modification of new tainted seeds in a thin data slicing style and generates the interprocedural data dependency graph. The slicing method can perform inner function alias analysis and a cross procedural argument tainting analysis. The call sites of dynamic function pointers or call sites expanded by macros are also handled in a heuristic way. I demonstrate the efficacy of method by applying the proto-type system ClueHunter in the vulnerability analysis procedure of 7 open-source projects. The tracing method reduce the amount of code to inspect by 94% for trace-based crash analysis.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信