What is it about?
libdebug is an open-source Python library to automate the debugging of binary executables in your own way. With libdebug, you have full control over the flow of your debugged executable. With it, you can: - Access process memory and registers - Control the execution flow of the process - Handle and hijack syscalls - Catch and hijack signals - Debug multithreaded applications with ease - Seamlessly switch to GDB for interactive analysis When running the same executable multiple times, choosing efficient implementations can make a significant difference. For this reason, libdebug prioritizes performance. Moreover, libdebug provides multi-architecture support, currently including Linux AMD64, AArch64, and i386 (both native and in 32-bit compatibility mode).
Featured Image
Photo by Uday Awal on Unsplash
Why is it important?
Automated debugging has long been pursued in a variety of fields, from software engineering to cybersecurity. It requires a framework that offers the building blocks for a programmable debugging workflow. However, existing debuggers are primarily tailored for human interaction, and those designed for programmatic debugging focus on kernel space, resulting in limited functionality in userland. To fill this gap, we introduce libdebug, a Python library for programmatic debugging of userland binary executables. libdebug offers a user-friendly API that enables developers to build custom debugging tools for various applications, including software engineering, reverse engineering, and software security. It is released as an open-source project, along with comprehensive documentation to encourage use and collaboration across the community.
Read the Original
This page is a summary of: Poster: libdebug, Build Your Own Debugger for a Better (Hello) World, December 2024, ACM (Association for Computing Machinery),
DOI: 10.1145/3658644.3691391.
You can read the full text:
Resources
Contributors
The following have contributed to this page