
Database di pacchetti per r2pm, il gestore di pacchetti di radare2, che fornisce hook di installazione e pacchetti binari per plugin, script e utilità di reverse engineering correlate a radare2.
Questo repository viene scaricato da r2pm -U e fornisce il database dei pacchetti.
Questi pacchetti vengono installati nella home dell'utente e possono essere plugin/script per radare2 o anche utilità/programmi correlati a r2.
Vedi https://github.com/radareorg/radare2 per 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"
Gli hook di installazione e disinstallazione di Windows usano la sintassi batch nativa. Interrompi esplicitamente
in caso di errore con command || exit /b 1; questo intercetta anche i codici di uscita negativi.
Usa call helper.cmd || exit /b 1 quando invochi un altro file batch, così l'esecuzione
ritorna all'hook. Le modifiche all'ambiente persistono tra le righe; i blocchi
if/else su più righe e le continuazioni con ^ seguono le normali regole di CMD.
Usa r2pm -bi r2frida per installare un binario rilasciato senza clonare o compilare
i sorgenti. R2V seleziona la release e per impostazione predefinita usa la versione di radare2 installata:
R2V=6.2.2 r2pm -bi r2frida
Facoltativamente dichiara i sistemi operativi, i runtime o i target esatti supportati con
R2PM_PLATFORMS:
R2PM_PLATFORMS "linux darwin windows"
# Per uno script r2js portabile invece:
R2PM_PLATFORMS "r2js"
# Per un pacchetto limitato a Linux x86 a 32 bit invece:
R2PM_PLATFORMS "linux-x86-32"
I tag separati da spazi controllano il filtro di ricerca dei pacchetti e popolano
l'array platforms in r2pm -sj. Altri tag, come termux, possono essere dichiarati
quando supportati. La dichiarazione è facoltativa: i pacchetti che non la includono, o con un
valore vuoto, mantengono l'inferenza della piattaforma dai propri hook di installazione e conservano
il comportamento di installazione esistente. Le triplette esatte os-arch-bits vengono confrontate con
r2pm -H R2PM_TRIPLET, inclusi architettura e bitness. Le voci multiple
sono alternative, quindi aggiungere linux accanto a una tripletta consente tutte le architetture
Linux. Il JSON espone anche binary: true quando esiste un hook R2PM_BINSTALL*;
anche gli script pronti all'uso contano come installazioni binarie. I tag di piattaforma
non garantiscono un binario per ogni release.
I pacchetti forniscono R2PM_BINSTALL() per i comandi della shell Unix e
R2PM_BINSTALL_WINDOWS() per i comandi Windows. Questi hook vengono eseguiti senza un
checkout dei sorgenti, ricevono R2V, R2PM_OS (linux, darwin, windows, ...),
R2PM_ARCH (x86, arm, ...), R2PM_BITS (32 o 64) e R2PM_TRIPLET
(<os>-<arch>-<bits>, ad esempio linux-x86-64), e installano nelle
solite directory R2PM_PLUGDIR, R2PM_BINDIR e altre directory di r2pm. -g seleziona
la directory dei plugin di sistema e fornisce R2PM_SUDO su Unix.
Gli hook binari devono selezionare la versione e il target esatti, gestire i propri strumenti
e le dipendenze di runtime, rispettare R2PM_OFFLINE e restituire un valore diverso da zero se il
binario non è disponibile o l'installazione fallisce. R2PM_NEEDS e R2PM_DEPS sono
prerequisiti per la compilazione dai sorgenti e vengono saltati. Non esiste un fallback ai sorgenti: r2pm
segnala l'errore e chiede all'utente di rieseguire senza -b.
Gli hook di r2frida estraggono gli asset di release Linux .deb, macOS .pkg e Windows .zip
nelle directory di r2pm. La disponibilità dipende dalla release selezionata;
architetture o versioni mancanti causano un errore anziché usare una release diversa.