
Paketdatenbank für r2pm, den Paketmanager von radare2, mit Installations-Hooks und Binärpaketen für radare2-Plugins, Skripte und zugehörige Reverse-Engineering-Werkzeuge.
Dieses Repository wird von r2pm -U abgerufen und stellt die Paketdatenbank bereit.
Diese Pakete werden im Home-Verzeichnis des Benutzers installiert und können Plugins/Skripte für radare2 oder sogar Dienstprogramme/Programme im Zusammenhang mit r2 sein.
Siehe https://github.com/radareorg/radare2 für r2pm
$ r2pm -U
$ r2pm -ci r2frida
export R2PM_DBDIR="$PWD/db"
# export R2PM_GITDIR="/path/to/the/root/folder/of/the/local/repository"
# export R2PM_USRDIR="/path/to/usr/dir"
Windows-Installations- und Deinstallations-Hooks verwenden native Batch-Syntax. Bei einem Fehler
explizit abbrechen mit command || exit /b 1; dies fängt auch negative Exit-Codes ab.
Verwende call helper.cmd || exit /b 1, wenn eine andere Batch-Datei aufgerufen wird, damit die Ausführung
zum Hook zurückkehrt. Umgebungsänderungen bleiben über Zeilen hinweg erhalten; mehrzeilige
if/else-Blöcke und ^-Fortsetzungen folgen den normalen CMD-Regeln.
Verwende r2pm -bi r2frida, um ein veröffentlichtes Binärpaket zu installieren, ohne Quellen zu klonen oder zu kompilieren.
R2V wählt die Version aus und verwendet standardmäßig die installierte radare2-Version:
R2V=6.2.2 r2pm -bi r2frida
Optional können unterstützte Betriebssysteme, Laufzeitumgebungen oder exakte Ziele mit
R2PM_PLATFORMS deklariert werden:
R2PM_PLATFORMS "linux darwin windows"
# Für ein portables r2js-Skript stattdessen:
R2PM_PLATFORMS "r2js"
# Für ein Paket, das auf 32-Bit-x86-Linux beschränkt ist, stattdessen:
R2PM_PLATFORMS "linux-x86-32"
Die durch Leerzeichen getrennten Tags steuern die Filterung der Paketsuche und füllen das
platforms-Array in r2pm -sj. Andere Tags wie termux können deklariert werden,
sofern sie unterstützt werden. Die Deklaration ist optional: Pakete ohne sie oder mit einem
leeren Wert behalten die Plattformableitung aus ihren Installations-Hooks und ihr
bestehendes Installationsverhalten bei. Exakte os-arch-bits-Tripel werden mit
r2pm -H R2PM_TRIPLET abgeglichen, einschließlich Architektur und Bitbreite. Mehrere Einträge
sind Alternativen, sodass das Hinzufügen von linux neben einem Tripel alle Linux-
Architekturen erlaubt. JSON gibt außerdem binary: true aus, wenn ein R2PM_BINSTALL*-
Hook existiert; gebrauchsfertige Skripte zählen ebenfalls als Binärinstallationen. Plattform-Tags
garantieren kein Binärpaket für jede Version.
Pakete stellen R2PM_BINSTALL() für Unix-Shell-Befehle und
R2PM_BINSTALL_WINDOWS() für Windows-Befehle bereit. Diese Hooks laufen ohne
Quellcode-Checkout, erhalten R2V, R2PM_OS (linux, darwin, windows, ...),
R2PM_ARCH (x86, arm, ...), R2PM_BITS (32 oder 64) und R2PM_TRIPLET
(<os>-<arch>-<bits>, zum Beispiel linux-x86-64), und installieren in
die üblichen Verzeichnisse R2PM_PLUGDIR, R2PM_BINDIR und andere r2pm-Verzeichnisse. -g wählt
das System-Plugin-Verzeichnis aus und stellt R2PM_SUDO unter Unix bereit.
Binär-Hooks müssen die exakte Version und das Ziel auswählen, ihre eigenen Werkzeuge
und Laufzeitabhängigkeiten behandeln, R2PM_OFFLINE respektieren und einen von Null verschiedenen Wert zurückgeben, wenn das
Binärpaket nicht verfügbar ist oder die Installation fehlschlägt. R2PM_NEEDS und R2PM_DEPS sind
Voraussetzungen für den Quellcode-Build und werden übersprungen. Es gibt keinen Rückfall auf den Quellcode: r2pm
meldet den Fehler und fordert den Benutzer auf, den Befehl ohne -b erneut auszuführen.
Die r2frida-Hooks entpacken Linux-.deb-, macOS-.pkg- und Windows-.zip-Release-
Assets in die r2pm-Verzeichnisse. Die Verfügbarkeit hängt von der ausgewählten Version ab;
fehlende Architekturen oder Versionen schlagen fehl, anstatt eine andere Version zu verwenden.