Mining input grammars from dynamic control flow
Rahul Gopinath, Björn Mathis, Andreas Zeller
摘要
One of the key properties of a program is its input specification. Having a formal input specification can be critical in fields such as vulnerability analysis, reverse engineering, software testing, clone detection, or refactoring. Unfortunately, accurate input specifications for typical programs are often unavailable or out of date.
In this paper, we present a general algorithm that takes a program and a small set of sample inputs and automatically infers a readable context-free grammar capturing the input language of the program. We infer the syntactic input structure only by observing access of input characters at different locations of the input parser. This works on all stack based recursive descent input parsers, including parser combinators, and works entirely without program specific heuristics. Our Mimid prototype produced accurate and readable grammars for a variety of evaluation subjects, including complex languages such as JSON, TinyC, and JavaScript.
• Software and its engineering → Software reverse engineering; Dynamic analysis; • Theory of computation → Grammars and context-free languages.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper20
- Griffin : Grammar-Free DBMS FuzzingJingzhou Fu, Jie Liang, Zhiyong Wu, Mingzhe Wang 等ASE 2022 · 被引用 44 次
- Learning input tokens for effective fuzzingBjörn Mathis, Rahul Gopinath, Andreas ZellerISSTA 2020 · 被引用 27 次
- Learning Highly Recursive Input GrammarsNeil Kulkarni, Caroline Lemieux, Koushik SenASE 2021 · 被引用 24 次
- Abstracting failure-inducing inputsRahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun 等ISSTA 2020 · 被引用 22 次
- Lifting Network Protocol Implementation to Precise Format Specification with Security ApplicationsQingkai Shi, Junyang Shao, Yapeng Ye, Mingwei Zheng 等CCS 2023 · 被引用 15 次
它引用的顶会 Paper4
- NAUTILUS: Fishing for Deep Bugs with GrammarsCornelius Aschermann, Tommaso Frassetto, Thorsten Holz, Patrick Jauernig 等NDSS 2019 · 被引用 291 次
- NEUZZ: Efficient Fuzzing with Neural Program SmoothingDongdong She, Kexin Pei, Dave Epstein, Junfeng Yang 等S&P 2019 · 被引用 220 次
- GRIMOIRE: Synthesizing Structure while FuzzingTim Blazytko, Cornelius Aschermann, Moritz Schlögel, Ali Abbasi 等USENIX Security 2019 · 被引用 123 次
- Debugging inputsLukas Kirschner, Ezekiel O. Soremekun, Andreas ZellerICSE 2020 · 被引用 15 次
相关 Paper
- How Good are Input Grammar Miners? An Empirical StudyLeon Bettscheider, Andreas ZellerICSE 2026
- Static Inference of Regular Grammars for Ad Hoc ParsersMichael Schröder, Jürgen CitoOOPSLA 2025 · 被引用 1 次
- "Synthesizing input grammars": a replication studyBachir Bendrissou, Rahul Gopinath, Andreas ZellerPLDI 2022 · 被引用 8 次
- V-Star: Learning Visibly Pushdown Grammars from Program InputsXiaodong Jia, Gang TanPLDI 2024 · 被引用 4 次
- Fast Deterministic Black-box Context-free Grammar InferenceMohammad Rifat Arefin, Suraj Shetiya, Zili Wang, Christoph CsallnerICSE 2024 · 被引用 4 次
