Introduction to Procedural Debugging through Binary Libification
Assessing the existence, exact impact and exploitability of a known (or theoretical) memory corruption vulnerability in an arbitrary piece of compiled software has arguably not become simpler. The current methodology essentially boils down to writing an exploit - or at least a trigger - for each potential vulnerability. Writing an exploit for a weird machine involves several undecidable steps, starting with overcoming the reachability problem. In this article, we introduce the notions of "libification" and "procedural debugging" to facilitate partial debugging of binaries at the procedural level. These techniques allow the transformation of arbitrary dynamically linked ELF binaries into shared libraries, and the study of memory corruption bugs by directly calling the vulnerable functions, hence separating the memory corruption intraprocedural analysis from the reachability problem. Finally, we publish a framework to implement such a libification under a permissive open-source license to facilitate its adoption within the security community.
Authors
- Jonathan Brossard
Institutions
- Conservatoire National des Arts et Métiers (FR)
- Centre d'Etudes et De Recherche en Informatique et Communications (FR)
Publication Details
- Journal
- SPIRE - Sciences Po Institutional REpository
- Published
- 2024-08-12
- DOI
- https://doi.org/10.5281/zenodo.17062141
- Citations
- 1
- Primary Topic
- Manufacturing Process and Optimization
- Type
- article
- Field-Weighted Citation Impact
- 0.35