Skip to content

Patcherex2

Latest Release PyPI Statistics CI License

Patcherex2 is a rewritten adaptation of the original Patcherex project, aimed at building upon its core ideas and extending its capabilities.

Installation

Patcherex2 is available on PyPI and can be installed using pip. Alternatively, you can use the provided Docker image.

pip

pip install patcherex2
Install from latest commit
pip install git+https://github.com/purseclab/Patcherex2.git

Docker

docker run --rm -it -v ${PWD}:/workdir -w /workdir ghcr.io/purseclab/patcherex2
Build from latest commit
docker build -t patcherex2 --platform linux/amd64 https://github.com/purseclab/Patcherex2.git
docker run --rm -it -v ${PWD}:/workdir -w /workdir patcherex2

Usage

You can find usage examples here.

Documentation

General documentation and API reference for Patcherex2 can be found at purseclab.github.io/Patcherex2.

Supported Targets

Linux x86 Linux amd64 Linux arm Linux aarch64 Linux PowerPC (32bit) Linux PowerPC (64bit) Linux PowerPCle (64bit) Linux MIPS (32bit) Linux MIPS (64bit) Linux MIPSEL
​(32bit)
Linux MIPSEL
(64bit)
SPARCv8 (LEON3) PowerPC (VLE) (IHEX)
InsertDataPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
RemoveDataPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
ModifyDataPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
InsertInstructionPatch (ASM) 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
InsertInstructionPatch (C) 🟥 🟩 🟥 🟩 🟥 🟥 🟥 🟥 🟥 🟥 🟥 🟥 🟥
RemoveInstructionPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
ModifyInstructionPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
InsertFunctionPatch 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩 🟩
ModifyFunctionPatch 🟨 🟩 🟩 🟩 🟨 🟨 🟨 🟨 🟨 🟨 🟨

🟩 Fully Functional, 🟨 Limited Functionality, 🟥 Not Working, ⬜ Not Tested, 🟪 Work in Progress

Acknowledgements

This project was developed as part of the DARPA AMP program, under contract N6600120C4031.