Reven 🦊
Reven is a flexible reverse engineering CLI toolkit written in Python and C. It is designed to facilitate the analysis of a large file set such as firmware files.
Features ✨
- Pipable: The tool allows for piping of input and output in a queryable YAML format.
- Tabular (powered by Rich): The tool outputs pretty printed tables when its not piped.
- Extendable: Reven supports plugins, allowing users to extend its functionality and add custom features.
Installation 👷
reven can be installed using pip.
$ pip install reven
Usage 🧑💻
Run reven --help to see the help and all available commands.
$ reven --help
Usage: reven [OPTIONS] COMMAND [ARGS]...
Operations for reverse engineering sets of files.
╭─ Options ──────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy │
│ it or customize the installation. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────╮
│ search Searches for data within inputs. │
│ transform Transforms an input to an output (e.g reverse). │
│ byte-frequencies Calculates the byte frequencies of the given inputs. │
│ find-patterns-grouped Groups files based on similarity and finds patterns │
│ for these groups. │
│ find-patterns Find a common pattern for all the provided input │
│ files. │
│ upset Creates an upset plot showing existential relations │
│ between data across files. │
│ slice Slice a file at start and end positions │
│ hex2bin Command for converting Intel HEX files to binary │
│ files. │
│ ngram Finds the n-grams for the files provided in stdin and │
│ arguments. │
│ etube Operations for reverse engineering Shimano E-Tube │
│ firmware │
╰────────────────────────────────────────────────────────────────────────────────╯
Metadata
Release files for reven 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reven-0.1.3.tar.gz | 19.2 kB | Details |
Release files / reven-0.1.3.tar.gz
| Download URL | reven-0.1.3.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
128af844a768f4a48988ec17bbba72527a50dd71ca80d35ec4f777efdc8589f8
|
|
BLAKE2b-256 checksum How to use checksums |
57bb49f794c9244348dfc7fb24ee8f51cc8c6fcc321d3237ae731f3ead6361e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 13, 2025.
Transparency log