Dynamic binary patcher

0e82d78 API: Add default_state to patch_make()

~old pushed to ~old/libpatch git

a day ago

ba2566b pre-inst-env: Do not prepend to CC

~old pushed to ~old/libpatch git

a day ago

Guix: builds.sr.ht status Debian: builds.sr.ht status Ubuntu: builds.sr.ht status Arch Linux: builds.sr.ht status


Lightweight dynamic binary probe inserter. Can be used for dynamic binary instrumentation and other usages.

#Quick usage

See examples/tutorial.c.


If you're not using Guix, then here's the list of dependencies depending on your usage. However, if you are using Guix, simply do:


to have a shell setup for development.

For other distros, check under .builds to see if there is a list of package to install for it.


  • capstone
  • liburcu
  • libdw (elfutils)
  • libunwind


  • gcc >= 8 || clang >= 8
  • Guile 3
  • GNU Make
  • pkg-config


  • dyninst
  • gdb
  • git
  • guix
  • lcov
  • lttng-ust
  • perf


#Build system

Custom build system written in Guile. The build system mimics GNU auto-tools with the classic configure, make, make install.


The project can be compiled and tested from Emacs. If you're using the package projectile, then you're good to go. If not, look at what .dir-locals.el does and tweak it to your needs.


If you're not using Emacs, then you can still use the scripts under scripts/. Some of these scripts assume that you're using Guix. Others don't. However, they all require Guile 3.0.8.