Explore the intricacies of graph-based ABI analysis in this comprehensive Linux Plumbers Conference talk. Delve into the world of ELF binary analysis, focusing on extracting and comparing API and ABI information from shared libraries and Linux kernel images. Learn about various information extraction methods, intermediate storage formats, and comparison techniques used in ABI monitoring. Discover the limitations of DWARF for describing ABI surfaces and explore alternative formats like CTF and BTF. Gain insights into the open-source STG (Symbol Type Graph) project, which implements a BTF reader and comparison algorithm for enforcing stable Android kernel and library ABIs. Understand the challenges of adding native DWARF support to STG and the data-driven approach used to overcome them. Explore the intricate details of STG internals, including design choices, storage formats, in-memory graph data structures, efficient graph traversal techniques, DWARF type information extraction and deduplication, and methods for filtering irrelevant type information in public ABIs.
Graph-based ABI Analysis: From ELF Binaries to Efficient ABI Monitoring
Linux Plumbers Conference via YouTube
Overview
Syllabus
Graph-based ABI analysis for fun and profit - Matthias Männich
Taught by
Linux Plumbers Conference