Skip to content

Commit

Permalink
docs: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
ndrewh committed Aug 27, 2024
1 parent 5468043 commit d362431
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Pyda
====

Pyda lets you write simple *dynamic* binary analysis tools using Python.

Pyda combines [Dynamorio](https://dynamorio.org)-based instrumentation with a CPython interpreter, allowing you to ***write hooks
in Python*** that directly manipulate registers/memory in the target, without
going through GDB or ptrace.
Pyda lets you write dynamic binary analysis tools using Python.

Pyda combines [Dynamorio](https://dynamorio.org)-based instrumentation with a CPython interpreter, allowing you to
"inject" Python code into any x86/ARM64 Linux process, without
going through GDB or ptrace. Your Python code can **directly manipulate registers and memory**
by registering "hooks" at any instruction.

Features:
- **Hooks**: Inspect and modify registers
Expand All @@ -28,7 +28,8 @@ Pyda is a...
to inspect/modify registers and memory. Several packages (e.g. pwntools) can be used
to look up symbols or parse DWARF info.
- **Reverse engineering tool**: Answer questions like "Where do all these indirect jumps go?" in just a few lines of Python.

- **CTF Tool**: We provide a pwntools-style API for I/O (a Pyda `Process` is actually a pwntools `tube`!), and
new "blocking" APIs like `p.run_until(pc)` which allow you to interleave execution and I/O.

#### Quickstart

Expand Down

0 comments on commit d362431

Please sign in to comment.