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

Institutions

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Introduction to Procedural Debugging through Binary Libification

Jonathan Brossard
1 citations
SPIRE - Sciences Po Institutional REpository
Manufacturing Process and Optimization
0.35
article

Introduction to Procedural Debugging through Binary Libification

Jonathan Brossard
article en
1 citations

Abstract

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.

SPIRE - Sciences Po Institutional REpository
Conservatoire National des Arts et Métiers (FR), Centre d'Etudes et De Recherche en Informatique et Communications (FR)
Openalex Percentile: Top 36%
Manufacturing Process and Optimization
0.35
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Introduction to Procedural Debugging through Binary Libification — Jonathan Brossard · SPIRE - Sciences Po Institutional REpository (2024) | TGRS Research Map | TGRS