Abstract
Accurate disassembly of stripped binaries is the first step in binary analysis, instrumentation and reverse engineering. Complex instruction sets such as the x86 pose major challenges in this context because it is very difficult to distinguish between code and embedded data. To make progress, many recent approaches have either made optimistic assumptions (e.g., absence of embedded data) or relied on additional compiler-generated metadata (e.g., relocation info and/or exception handling metadata). Unfortunately, many complex binaries do contain embedded data, while lacking the additional metadata needed by these techniques. We therefore present a novel approach for accurate disassembly that uses statistical properties of data to detect code, and behavioral properties of code to flag data. We present new static analysis and data-driven probabilistic techniques that are then combined using a prioritized error correction algorithm to achieve results that are 3× to 4× more accurate than the best previous results.
Cite
CITATION STYLE
Priyadarshan, S., Nguyen, H., & Sekar, R. (2024). Accurate Disassembly of Complex Binaries Without Use of Compiler Metadata. In International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS (Vol. 4, pp. 1–18). Association for Computing Machinery. https://doi.org/10.1145/3623278.3624766
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.