6 releases (breaking)

0.5.0 Oct 5, 2023
0.4.0 Apr 23, 2023
0.3.0 Mar 10, 2023
0.2.0 Mar 1, 2023
0.1.0 Jul 7, 2022

#635 in Debugging

MIT license

260KB
4K SLoC

Contains (ELF exe/lib, 23KB) resources/test/say_hello_no_pie, (ELF exe/lib, 16KB) create_thread_join_and_die

Steroid

A Rust library for dynamic binary instrumentation that aims to ensure the validity of each manipulation of the remote process, both in terms of address space and process state. This library uses Rust lifetime concept to represent the state of the remote process and ensure that every underlying call to ptrace is valid.

Features

Currently, steroid allows to spawn a process, wait for it to be stopped, resume its execution, get and set its registers. The user can also set and manipulate breakpoints.

The user is able to get a high-level representation of the memory mapping of the remote process. They are able to manipulate the remote process' memory through safe high-level constructs such as buffers.

Contact

This library is still at an early stage of development and commits can be irregular, depending of the time and motivation I have to work on the project. However, feel free to report any issue or suggestion on the Gitlab repository or at camille.lebon35000@gmail.com.

Dependencies

~2.5MB
~53K SLoC