Macaw: A Machine Code Toolbox for the Busy Binary Analyst
Ryan G. Scott, Brett Boston, Benjamin Davis, Iavor Diatchki, and Mike Dodds, Joe Hendrix, Daniel Matichuk, Kevin Quick and, Tristan Ravitch, Valentin Robert, Benjamin Selfridge, Andrei, Stef\u{a}nescu, Daniel Wagner, Simon Winwood

TL;DR
Macaw is a modular, type-safe framework designed to rapidly develop reliable binary analysis tools, supporting various analyses like symbolic execution and binary lifting, with proven industrial use.
Contribution
The paper introduces Macaw, a novel, modular framework that leverages functional programming for reliable, rapid binary analysis tool development across diverse use cases.
Findings
Supports static and dynamic analyses including symbolic execution
Enables binary lifting from x86 to LLVM
Verifies correctness of mixed C and assembly code
Abstract
When attempting to understand the behavior of an executable, a binary analyst can make use of many different techniques. These include program slicing, dynamic instrumentation, binary-level rewriting, symbolic execution, and formal verification, all of which can uncover insights into how a piece of machine code behaves. As a result, there is no one-size-fits-all binary analysis tool, so a binary analysis researcher will often combine several different tools. Sometimes, a researcher will even need to design new tools to study problems that existing frameworks are not well equipped to handle. Designing such tools from complete scratch is rarely time- or cost-effective, however, given the scale and complexity of modern ISAs. We present Macaw, a modular framework that makes it possible to rapidly build reliable binary analysis tools across a range of use cases. Statically typed functional…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsData Quality and Management · Software System Performance and Reliability
