├── env.sh ├── .gitignore ├── db ├── r2pipe-py ├── skynet ├── r2pipe-rb ├── r2papi-py ├── r2analyze ├── r2env ├── androguard ├── mai-vim ├── r2book ├── r2pipe-ocaml ├── v ├── zig ├── r2wakare ├── meson ├── r2sarif ├── iref ├── r2tox ├── r4ghidra ├── gtkaml ├── jtool ├── r2lrn ├── pickledec ├── radeco ├── bin-md380fw ├── ghidra-r2webserver ├── mzip ├── x86iced ├── z3 ├── asciibird ├── dextra ├── pwm ├── r2frida-codeshare ├── r2iaito ├── vg ├── ipsw ├── r2i ├── r2premium ├── r2ai ├── r2mcp ├── r2doom ├── r2golf ├── r2pipe-go ├── r2taint ├── tiv ├── angr ├── gn ├── libmc7 ├── libuing ├── pen ├── r2graph ├── r2pipe-java ├── redress ├── gguf ├── r2flutch ├── revng ├── ksv ├── r2angr ├── r2api-python-ctypes ├── r2afen ├── r2con ├── r2wars ├── gnuboy ├── iaito ├── iometa ├── r2addrline ├── r2api-vala ├── r2crash ├── clemency ├── esilsolve ├── r2r ├── vapi ├── wxwidgets ├── jadx ├── r2kaitai ├── rlang-perl ├── rlang-ruby ├── sbasm3 ├── pdq ├── r2api-python ├── rarop ├── dirtycow ├── libuing-static ├── r2d2 ├── r2lldb ├── rlang-zforth ├── r2svd ├── ssdeep-lib ├── yices ├── lief ├── r2angr-io ├── r2au ├── rlang-csharp ├── samurai ├── syms2elf ├── avarice ├── fs-squash ├── r2com ├── r2diaphora ├── r2pipe-js ├── r2jadx ├── rune ├── vdexextractor ├── mai ├── r2poke ├── dwarf-writer ├── hexagon ├── rlang-lua ├── capstone-next ├── esil2reil ├── imcat ├── ninja ├── python ├── r2apktool ├── renef ├── rlang-mujs ├── rlang-tiny ├── rlang-wren ├── m32c ├── rlang-qjs ├── pimp ├── radare ├── rlang-tcl ├── rlang-vlang ├── r2elisa ├── r2pipe-ts ├── valabind ├── valgrind ├── zigup ├── machoke ├── smali ├── sqsh-tools ├── unicorn-lib ├── esilburner ├── miasm ├── ldid2 ├── rlang-duktape ├── ios-kernelcache ├── radare2 ├── radius2 ├── sibyl ├── asahi ├── ba2 ├── keystone-lib ├── r2-copilot ├── rl78 ├── x86tab ├── x86udis ├── emscripten ├── gmni ├── x86olly ├── apktool ├── bcl ├── io-ewf ├── nios ├── x86bea ├── baksmali ├── llama.cpp ├── ppcdisasm ├── r2skel ├── insert_dylib ├── r2ai-docker ├── uncrustify ├── unzip-lzfse ├── llamafile ├── zpu ├── blackfin ├── decai ├── m68k-net ├── r2rls ├── winapi ├── bearssl ├── x86zyan ├── zig-masm32 ├── libdwarf ├── modality ├── spp ├── agc ├── jaguar-gpu ├── psosvm ├── r0 ├── r2-lua53 ├── r2api-perl ├── r2commodore ├── r2docker ├── microblaze ├── simulavr ├── vc4 ├── os9 ├── r2b-lua ├── ssdeep ├── r2dec ├── vala ├── pcap ├── r2frida-objection ├── koboldcpp ├── muon ├── r2api-lua ├── r2renef ├── armthumb ├── capstone-v4 ├── dlang ├── mc6809 ├── z80-nc ├── acr ├── baleful ├── msil ├── atombios ├── groovy ├── vasm ├── capstone-v5 ├── chita ├── evm ├── java2dex ├── r2pipe-cs ├── axml2xml ├── r2snow ├── dwarf-parser ├── r4ge ├── blessr2 ├── r2yara ├── r2pipe-vala ├── keystone ├── sdb ├── tcc ├── rlang-python ├── mlc-llm ├── signapk ├── ggpack ├── poke ├── unicorn ├── swf ├── dex2jar ├── r2api-python-swig ├── r2docker-amd64 ├── r2docker-arm64 ├── tcl ├── r2docker-386 ├── r2docker-s390x ├── r2docker-armv6 ├── r2docker-armv7 ├── r2docker-ppc64le ├── r2msdn ├── tk ├── www-p ├── www-t ├── www-m ├── kaitai-struct-compiler ├── ghidra ├── r2retdec ├── www-enyo ├── r2ghidra ├── r2dec-duk ├── r2wiki ├── swig ├── r2retdec-cli ├── frida ├── r2k-linux-unstable ├── r2k-linux ├── yara ├── r2frida-precompiled ├── r2frida-15 ├── r2frida ├── goresym ├── yara-r2 ├── r2ghidra-sleigh ├── reai-r2 └── simulavr-old ├── lint.sh └── README.md /env.sh: -------------------------------------------------------------------------------- 1 | export R2PM_DBDIR="$PWD/db" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.un~ 2 | *.swp 3 | *.swo 4 | -------------------------------------------------------------------------------- /db/r2pipe-py: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "r2pipe API for Python" 4 | 5 | R2PM_INSTALL() { 6 | pip install -U r2pipe 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | pip uninstall r2pipe 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/skynet: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "SkyNet TWD AI" 4 | 5 | R2PM_INSTALL() { 6 | echo "ERROR: Skynet cannot run on old hardware like this" 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | : 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/r2pipe-rb: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "r2pipe API for Ruby" 4 | 5 | R2PM_INSTALL() { 6 | ${SUDO} gem install r2pipe 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | ${SUDO} gem uninstall r2pipe 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/r2papi-py: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Idiomatic high-level API on top of r2pipe for Python" 4 | 5 | R2PM_INSTALL() { 6 | pip install -U r2api 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | pip uninstall r2api 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/r2analyze: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Connect radare2 with Intezer malware analysis platform" 4 | 5 | R2PM_INSTALL() { 6 | pip install -U r2analyze 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | pip uninstall r2analyze 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/r2env: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2env" 4 | R2PM_DESC "Multiple radare2 environment tool" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/androguard: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Androguard Android APK analysis tool" 4 | 5 | R2PM_INSTALL() { 6 | ${SUDO} pip install --upgrade androguard 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | ${SUDO} pip uninstall androguard 11 | } 12 | 13 | R2PM_END 14 | -------------------------------------------------------------------------------- /db/mai-vim: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/trufae/mai" 4 | R2PM_DESC "Integrate Mai with Vim" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C vim install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} -C vim uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2book: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2book" 4 | R2PM_DESC "Radare2 book as a plugin" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C plugin 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} -C plugin uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2pipe-ocaml: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/fxfactorial/ocaml-radare2" 4 | R2PM_DESC "r2pipe API for OCaml" 5 | 6 | R2PM_INSTALL() { 7 | opam install radare2 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | opam uninstall radare2 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/v: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/vlang/v 4 | R2PM_DESC "V programming language compiler" 5 | 6 | R2PM_INSTALL() { 7 | make 8 | sudo ./v symlink 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${R2PM_SUDO} rm -f /usr/local/bin/v 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/zig: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/marler8997/zigup" 4 | R2PM_DESC "Keep Zig toolchain up to date" 5 | R2PM_DEPS zigup 6 | 7 | R2PM_INSTALL() { 8 | sudo zigup master 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | sudo zigup clean 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2wakare: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/SiD3W4y/r2wakare" 4 | R2PM_DESC "Wakare trace integration for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | ${MAKE} install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/meson: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Meson build system for Ninja" 4 | R2PM_DEPS ninja 5 | 6 | R2PM_INSTALL() { 7 | ${R2PM_SUDO} pip3 install --break-system-packages -U meson 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${R2PM_SUDO} pip3 uninstall meson 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2sarif: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2sarif" 4 | R2PM_DESC "Import and export SARIF documents into radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} user-install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} user-uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/iref: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Instruction reference manual command-line tool" 5 | 6 | R2PM_INSTALL() { 7 | make -C iref install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | make -C iref uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2tox: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Expose current shell in Tox" 5 | 6 | R2PM_INSTALL() { 7 | $MAKE -C r2tox || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | $MAKE -C r2tox uninstall || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r4ghidra: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r4ghidra" 4 | R2PM_DESC "Java-based radare2 rewrite for Ghidra" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | ${MAKE} install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} uninstall 13 | } 14 | 15 | R2PM_END 16 | 17 | -------------------------------------------------------------------------------- /db/gtkaml: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_SVN https://gtkaml.googlecode.com/svn/trunk gtkaml 4 | R2PM_DESC "GtkAml transpiler" 5 | 6 | R2PM_INSTALL() { 7 | sh autogen.sh --prefix=/usr && \ 8 | $MAKE && \ 9 | sudo $MAKE install 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | sudo $MAKE uninstall 14 | } 15 | -------------------------------------------------------------------------------- /db/jtool: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ "http://www.newosxbook.com/tools/jtool.tar" 4 | R2PM_DESC "Jtool from Jonathan Levin" 5 | 6 | R2PM_INSTALL() { 7 | cp -f jtool "${R2PM_PREFIX}/bin/jtool" 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f "${R2PM_PREFIX}/bin/jtool" 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2lrn: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/0ki/r2lrn" 4 | R2PM_DESC "Learning game for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ln -fs "`pwd`/bash/r2lrn.sh" ${R2PM_PREFIX}/bin/r2lrn 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f ${R2PM_PREFIX}/bin/r2lrn 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/pickledec: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/swoops/r2pickledec" 4 | R2PM_DESC "Pickle decompiler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C src 8 | ${MAKE} -C src install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C src uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/radeco: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radeco" 4 | R2PM_DESC "Radare decompiler in Rust" 5 | 6 | R2PM_INSTALL() { 7 | cargo update --verbose || exit 1 8 | $MAKE install || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | $MAKE uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/bin-md380fw: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "MD380 firmware loader for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C md380/bin-fw || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f "${R2PM_PLUGDIR}/"*md380* 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/ghidra-r2webserver: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/ghidra-r2web" 4 | R2PM_DESC "Ghidra plugin for radare2 communication" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} install || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} uninstall || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/mzip: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/trufae/mzip" 4 | R2PM_DESC "Minimal ZIP implementation with multiple compression algorithms" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | ${MAKE} install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} uninstall 13 | } 14 | 15 | R2PM_END 16 | 17 | -------------------------------------------------------------------------------- /db/x86iced: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "x86 disassembler plugin in Rust using iced" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C x86iced 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} -C x86iced uninstall || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/z3: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/Z3Prover/z3" 4 | R2PM_DESC "Z3 theorem prover" 5 | 6 | R2PM_INSTALL() { 7 | ./configure 8 | cd build && $MAKE -j4 9 | cp build/z3 "${R2PM_BINDIR}/z3" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_BINDIR}"/z3 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/asciibird: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/hamikm/AsciiBird/" 4 | R2PM_DESC "ASCII art Flappy Bird game" 5 | 6 | R2PM_INSTALL() { 7 | make 8 | cp -f driver "${R2PM_BINDIR}/asciibird" 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_BINDIR}/asciibird" 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/dextra: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ "http://newandroidbook.com/tools/dextra.tar" . 4 | R2PM_DESC "Dextra tool from Jonathan Levin" 5 | 6 | R2PM_INSTALL() { 7 | cp -f dextra "${R2PM_PREFIX}/bin/dextra" 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f "${R2PM_PREFIX}/bin/dextra" 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/pwm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Print world map command" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C world && ${MAKE} -C world user-install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} -C world user-uninstall 12 | } 13 | 14 | R2PM_END 15 | 16 | -------------------------------------------------------------------------------- /db/r2frida-codeshare: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2frida" 4 | R2PM_DESC "r2js plugin to browse and inject Frida codeshare scripts" 5 | 6 | R2PM_INSTALL() { 7 | make -C plugins 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | make -C plugins uninstall 12 | } 13 | 14 | R2PM_END 15 | 16 | -------------------------------------------------------------------------------- /db/r2iaito: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/radareorg/iaito 4 | R2PM_DESC "Plugin to launch iaito reusing current radare2 session" 5 | 6 | R2PM_INSTALL() { 7 | ./configure && make 8 | make plugin 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | make plugin-uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/vg: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Simplified Vagrant" 4 | 5 | R2PM_INSTALL() { 6 | wget -c -O ${R2PM_BINDIR}/vg https://raw.githubusercontent.com/radare/toys/master/bin/vg 7 | chmod +x ${R2PM_BINDIR}/vg 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f "${R2PM_BINDIR}"/vg 12 | } 13 | 14 | R2PM_END 15 | 16 | -------------------------------------------------------------------------------- /db/ipsw: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/blacktop/ipsw" 4 | R2PM_DESC "iOS/macOS research Swiss Army Knife" 5 | 6 | R2PM_INSTALL() { 7 | make build 8 | ln -fs ${PWD}/ipsw ${R2PM_BINDIR}/ipsw 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/ipsw 13 | } 14 | 15 | R2PM_END 16 | 17 | -------------------------------------------------------------------------------- /db/r2i: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Indent code using radare2 style" 5 | 6 | R2PM_INSTALL() { 7 | ${R2PM_SUDO} ln -fs "$PWD/"sys/indent.sh ${R2PM_PREFIX}/bin/r2i 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm -f ${R2PM_PREFIX}/bin/r2i 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2premium: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/condret/r2premium" 4 | R2PM_DESC "Fortune package for premium radare2 experience" 5 | 6 | R2PM_INSTALL() { 7 | make all install || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | make all uninstall || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2ai: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2ai" 4 | R2PM_DESC "Native AI plugin for radare2" 5 | R2PM_NEEDS "gcc pkg-config" 6 | 7 | R2PM_INSTALL() { 8 | make -C src 9 | make -C src user-install 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | make -C src user-uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2mcp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/dnakov/radare2-mcp" 4 | R2PM_DESC "Model Context Protocol server for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure 8 | make 9 | make user-install 10 | make doc 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | make user-uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/r2doom: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Doom port for radare2" 5 | 6 | R2PM_INSTALL() { 7 | $MAKE -C r2doom || exit 1 8 | $MAKE -C r2doom install || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | $MAKE -C r2doom uninstall || exit 1 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2golf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/0ki/r2lrn" 4 | R2PM_DESC "Golf plugin to learn radare2 commands" 5 | 6 | R2PM_INSTALL() { 7 | cd _other/golf-plugin 8 | $MAKE ; $MAKE install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | cd _other/golf-plugin 13 | $MAKE ; $MAKE uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2pipe-go: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "r2pipe API for Go" 4 | 5 | R2PM_INSTALL() { 6 | go get github.com/radare/r2pipe-go || exit 1 7 | echo "r2pipe-go installed" 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | go clean -i github.com/radare/r2pipe-go || exit 1 12 | rm -rf "$GOPATH/src/github.com/radare/r2pipe-go" 13 | } 14 | -------------------------------------------------------------------------------- /db/r2taint: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Static taint analysis for radare2 (x86, x64)" 5 | 6 | R2PM_INSTALL() { 7 | cp -f r2taint/taint.py "${R2PM_BINDIR}" || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm "${R2PM_BINDIR}/"taint.py 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/tiv: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/tiv" 4 | R2PM_DESC "Text-image viewer" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | ${SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/angr: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/radare2-extras" 4 | R2PM_DESC "Radare2 frontend for the angr binary analysis framework" 5 | 6 | R2PM_INSTALL() { 7 | cd r2angr 8 | ln -fs $PWD/angr ${R2PM_BINDIR}/angr 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/angr 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/gn: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://gn.googlesource.com/gn 4 | R2PM_DESC "Generator for Ninja build files" 5 | 6 | R2PM_INSTALL() { 7 | python build/gen.py 8 | ninja -C out 9 | ${SUDO} cp -f out/gn ${R2PM_BINDIR}/gn 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${SUDO} rm -f ${R2PM_BINDIR}/gn 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/libmc7: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/condret/r2-libmc7" 4 | R2PM_DESC "MC7 bytecode disassembler for Siemens PLC" 5 | BINDIR="${R2PM_BINDIR}" 6 | 7 | R2PM_INSTALL() { 8 | make all install || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | make uninstall || exit 1 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/libuing: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/libui-ng/libui-ng 4 | R2PM_DESC "Libui-ng portable native GUI library for C" 5 | 6 | R2PM_INSTALL() { 7 | meson b --reconfigure --prefix ${R2PM_PREFIX} 8 | ninja -C b install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ninja -C b uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/pen: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ "http://siag.nu/pub/pen/pen-0.34.1.tar.gz" 4 | R2PM_DESC "Pen TCP port load balancer and bouncer" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" 8 | ${MAKE} -j4 9 | ${MAKE} install 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${MAKE} uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2graph: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Recursive graph visualization for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cp -f r2graph/r2xrefs.py "${R2PM_PLUGDIR}" || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | rm "${R2PM_PLUGDIR}/"r2xrefs.py 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2pipe-java: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "r2pipe API for Java" 4 | R2PM_GIT "https://github.com/radareorg/radare2-r2pipe" 5 | 6 | R2PM_INSTALL() { 7 | cd java || exit 1 8 | ${MAKE} || exit 1 9 | cp -f r2pipe.jar "${R2PM_OLDPWD}" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() {} # nothing to do here 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/redress: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/goretk/redress" 4 | R2PM_DESC "Tool for analyzing stripped Go binaries" 5 | 6 | R2PM_INSTALL() { 7 | make build 8 | cp -f ${PWD}/redress ${R2PM_PREFIX}/bin/redress 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_PREFIX}/bin/redress 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/gguf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "GGUF binary parser for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd libr/bin/gguf && ${MAKE} && ${MAKE} user-install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | cd libr/bin/gguf && ${MAKE} && ${MAKE} user-uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2flutch: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/as0ler/r2flutch" 4 | R2PM_DESC "Decrypt iOS applications using r2frida" 5 | R2PM_DEPS python-pip 6 | 7 | R2PM_INSTALL() { 8 | pip install -r requirements.txt 9 | pip install . 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | pip uninstall r2flutch 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/revng: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "rev.ng decompiler" 4 | 5 | R2PM_INSTALL() { 6 | cd "${R2PM_GITDIR}" 7 | curl -L -s https://rev.ng/downloads/revng-distributable/master/install.sh | bash 8 | ln -fs "${PWD}/revng/revng" "${R2PM_BINDIR}/revng" 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -rf revng 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/ksv: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Kaitai Struct visualizer" 4 | R2PM_DEPS kaitai-struct-compiler 5 | 6 | R2PM_INSTALL() { 7 | gem install --user-install kaitai-struct-visualizer 8 | ln -fs ${HOME}/.gem/ruby/*/bin/ksv ${R2PM_BINDIR}/ksv 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/ksv 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2angr: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/radare2-extras" 4 | R2PM_DESC "Use ANGR decompiler in radare2" 5 | R2PM_DEPS angr 6 | 7 | R2PM_INSTALL() { 8 | cd r2angr && ln -fs $PWD/r2angr ${R2PM_BINDIR}/r2angr || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/r2angr 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2api-python-ctypes: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native radare2 API bindings for Python using ctypes" 5 | 6 | R2PM_INSTALL() { 7 | cd ctypes && ${MAKE} && ${MAKE} install 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${R2PM_SUDO} ${MAKE} uninstall 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2afen: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Plugin to rename expressions in radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd afen 8 | meson b --wipe 9 | meson install -C b 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f ${R2PM_PLUGDIR}/libcoreafen.${R2_LIBEXT} 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2con: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Official radare2 conference" 4 | 5 | R2PM_INSTALL() { 6 | R2CON_LINK="https://radare.org/con/" 7 | xdg-open ${R2CON_LINK} > /dev/null 2>&1 8 | [ $? != 0 ] && open ${R2CON_LINK} > /dev/null 2>&1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | # you cant uninstall r2con 13 | : 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2wars: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "r2wars game" 5 | 6 | R2PM_INSTALL() { 7 | cp -f r2wars/r2wars.py ${R2PM_PREFIX}/bin/r2wars || exit 1 8 | chmod +x ${R2PM_PREFIX}/bin/r2wars 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_PREFIX}/bin/r2wars 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/gnuboy: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/AlexOberhofer/SDL2-GNUBoy" 4 | R2PM_DESC "Game Boy emulator" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | ${SUDO} cp -f sdl2gnuboy "${R2PM_PREFIX}"/bin/gnuboy || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${SUDO} rm -f "${R2PM_PREFIX}"/bin/gnuboy || exit 1 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/iaito: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/radareorg/iaito 4 | R2PM_DESC "C++/Qt GUI for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure && ${MAKE} 8 | ${MAKE} user-install 9 | ${R2PM_SUDO} make install 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${MAKE} user-uninstall 14 | ${R2PM_SUDO} make uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/iometa: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/Siguza/iometa" 4 | R2PM_DESC "Extract C++ class RTTI on ARM64 Darwin kernel" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} 8 | mkdir -p "${R2PM_BINDIR}" 9 | cp -f iometa "${R2PM_BINDIR}/iometa" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_BINDIR}"/iometa 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2addrline: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "DWARF parser library" 5 | 6 | R2PM_INSTALL() { 7 | cp -f dwarf/r2addrline.sh ${R2PM_BINDIR}/r2addrline 8 | chmod +x ${R2PM_BINDIR}/r2addrline 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/r2addrline 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2api-vala: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Vala interface files for radare2 libraries" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} install-vapi 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} uninstall-vapi 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2crash: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Crash log parser" 5 | 6 | R2PM_INSTALL() { 7 | F=${R2PM_BINDIR}/r2crash 8 | ln -fs ${PWD}/crashlog/r2crash.js $F 9 | chmod +x $F 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | F=${R2PM_BINDIR}/r2crash 14 | rm -f "$F" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/clemency: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/MaskRay/r2cLEMENCy" 4 | R2PM_DESC "Radare2 plugin for cLEMENCy architecture" 5 | 6 | R2PM_INSTALL() { 7 | #./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C clemency symstall 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C clemency uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/esilsolve: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/esilsolve" 4 | R2PM_DESC "Z3 theorem prover for symbolic execution with ESIL" 5 | R2PM_DEPS rlang-python 6 | 7 | R2PM_INSTALL() { 8 | python setup.py build 9 | python setup.py install 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | python setup.py uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2r: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-regressions" 4 | R2PM_DESC "Radare2 regression testing tools" 5 | 6 | R2PM_INSTALL() { 7 | ${R2PM_SUDO} ${MAKE} symstall PREFIX="${R2PM_PREFIX}" || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${R2PM_SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/vapi: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Vala API files for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${SUDO} ${MAKE} install-vapi || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${SUDO} ${MAKE} uninstall-vapi 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/wxwidgets: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | R2PM_GIT https://github.com/wxWidgets/wxWidgets.git 3 | R2PM_DESC "WxWidgets library from git" 4 | 5 | R2PM_INSTALL() { 6 | ./configure --prefix=${R2PM_PREFIX} --disable-shared 7 | make -j8 SHARED=0 BUILD=release 8 | make install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | make uninstall 13 | } 14 | 15 | R2PM_END 16 | 17 | -------------------------------------------------------------------------------- /db/jadx: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "JADX Java decompiler" 4 | 5 | R2PM_TGZ https://github.com/skylot/jadx/releases/download/v1.5.1/jadx-1.5.1.zip 6 | 7 | R2PM_INSTALL() { 8 | mkdir -p "${R2PM_BINDIR}" 9 | ln -fs "${PWD}/bin/jadx" "${R2PM_BINDIR}/jadx" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_BINDIR}"/jadx 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2kaitai: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "r2kaitai command to list signatures and launch ksv" 5 | R2PM_DEPS ksv 6 | 7 | R2PM_INSTALL() { 8 | ln -fs ${PWD}/kaitai/r2kaitai ${R2PM_BINDIR}/r2kaitai 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/r2kaitai 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/rlang-perl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Perl scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C perl || exit 1 8 | ${MAKE} -C perl install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C perl uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/rlang-ruby: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Ruby scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C ruby || exit 1 8 | ${MAKE} -C ruby install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C ruby uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/sbasm3: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/sbprojects/sbasm3 4 | R2PM_DESC "SB-Assembler Version 3 cross macro assembler" 5 | 6 | R2PM_INSTALL() { 7 | # pip install -r requirements.txt 8 | ln -fs ${PWD}/sbasm "${R2PM_PREFIX}/bin/sbasm3" 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_PREFIX}/bin/sbasm3" 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/pdq: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-r2papi" 4 | R2PM_DESC "Quick decompiler based on r2js and ESIL" 5 | 6 | R2PM_INSTALL() { 7 | make -C typescript pdq || exit 1 8 | make -C typescript user-install || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | make -C typescript user-uninstall || exit 1 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2api-python: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native Python API bindings for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C r2libr || exit 1 8 | ${MAKE} -C r2libr install || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | cd python && ${R2PM_SUDO} ${MAKE} uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/rarop: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/jpenalbae/rarop" 4 | R2PM_DESC "Graphical ROP chain builder using radare2 and r2pipe" 5 | 6 | R2PM_INSTALL() { 7 | yarn || npm install || exit 1 8 | ln -fs ${PWD}/bin/rarop ${R2PM_BINDIR}/rarop || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f ${R2PM_BINDIR}/rarop 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/dirtycow: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/dirtycow" 4 | R2PM_DESC "DirtyCOW exploit IO plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} || exit 1 8 | cp -f io_dirtycow.so "${R2PM_PLUGDIR}"/io_dirtycow.${LIBEXT} || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_PLUGDIR}/io_dirtycow."* 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/libuing-static: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/libui-ng/libui-ng 4 | R2PM_DESC "Libui-ng portable native GUI library for C (static)" 5 | 6 | R2PM_INSTALL() { 7 | meson b --default-library static --reconfigure --prefix ${R2PM_PREFIX} 8 | ninja -C b install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ninja -C b uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2d2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/dnakov/r2d2" 4 | R2PM_DESC "GPT-4 interface plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | pip install . 8 | ln -s "${R2PM_GITDIR}/r2d2/r2d2/main.py" "${R2PM_PLUGDIR}/r2d2.py" 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | pip uninstall r2d2 13 | rm -f "${R2PM_PLUGDIR}/r2d2.py" 14 | } 15 | 16 | R2PM_END -------------------------------------------------------------------------------- /db/r2lldb: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2lldb" 4 | R2PM_DESC "LLDB backend for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} install PYPATH="${R2PM_PYPATH}" PREFIX="${R2PM_PREFIX}" || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | ${MAKE} uninstall PYPATH="${R2PM_PYPATH}" PREFIX="${R2PM_PREFIX}" || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/rlang-zforth: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "zForth scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -C zforth || exit 1 8 | #${MAKE} -C zforth install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C zforth uninstall 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2svd: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Load SVD description files into radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd r2svd || exit 1 8 | ${MAKE} || exit 1 9 | ${MAKE} install || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | cd r2svd || exit 1 14 | ${MAKE} uninstall "${R2PM_PLUGDIR}" || exit 1 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/ssdeep-lib: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "ssdeep library v2.13" 5 | 6 | R2PM_INSTALL() { 7 | export CFLAGS=-I/usr/local/include 8 | ssdeep/ssdeep-lib/install-ssdeep.sh 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | export CFLAGS=-I/usr/local/include 13 | ssdeep/ssdeep-lib/uninstall-ssdeep.sh 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/yices: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | VV="2.6.1" 4 | 5 | R2PM_TGZ "http://github.com/SRI-CSL/yices2/archive/Yices-${VV}-src.tar.gz" "yices-${VV}" 6 | R2PM_DESC "Yices lightweight SMT2 solver" 7 | 8 | R2PM_INSTALL() { 9 | ./configure --prefix="${R2PM_PREFIX}" 10 | ${MAKE} -j4 11 | ${MAKE} install 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/lief: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "LIEF binary plugins for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd lief && ${MAKE} && ${MAKE} install USER_PLUGINS="${R2PM_PLUGDIR}" || exit 1 8 | } 9 | 10 | R2PM_UNINSTALL() { 11 | cd lief && ${MAKE} && ${MAKE} uninstall USER_PLUGINS="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_END 15 | -------------------------------------------------------------------------------- /db/r2angr-io: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "ANGR IO plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${R2PM_SUDO} cp -f r2angr/r2angr-io.py "${R2PM_PLUGDIR}" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_PLUGDIR}/"r2angr-io.py 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2au: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/radare2-extras" 4 | R2PM_DESC "Audio support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd r2au || exit 1 8 | ${MAKE} clean 9 | ${MAKE} || exit 1 10 | ${MAKE} install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | cd r2au || exit 1 15 | ${MAKE} uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/rlang-csharp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "C# scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C csharp || exit 1 9 | ${MAKE} -C csharp install || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${MAKE} -C csharp uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/samurai: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/michaelforney/samurai" 4 | R2PM_DESC "Ninja replacement in pure C" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} -j CFLAGS="-O2 -DNO_GETLOADAVG=1" 8 | mkdir -p "${R2PM_BINDIR}" 9 | ${R2PM_SUDO} cp -f samu "${R2PM_BINDIR}" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${R2PM_SUDO} rm -f "${R2PM_BINDIR}/samu" 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/syms2elf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/danigargu/ida-syms2elf" 4 | R2PM_DESC "Export recognized symbols to ELF symbol table" 5 | 6 | R2PM_INSTALL() { 7 | mkdir -p "${R2PM_ETCD}" 8 | echo '$syms2elf=#!pipe python '"'`pwd`'"'/syms2elf.py' > "${R2PM_ETCD}/syms2elf" 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_ETCD}"/syms2elf 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/avarice: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/raimue/avarice" 4 | R2PM_DESC "Avarice AVR JTAG gdbserver bridge" 5 | 6 | R2PM_INSTALL() { 7 | ./Bootstrap || exit 1 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | ${MAKE} -j 4 || exit -1 10 | ${MAKE} install || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${MAKE} uninstall || exit 1 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/fs-squash: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Read-only SquashFS filesystem support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/fs/squashfs || exit 1 9 | ${MAKE} 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | cd `r2 -H USER_PLUGINS` && rm -f fs_squash* 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/r2com: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/newlog/r2com" 4 | R2PM_DESC "COM object identification plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | mkdir -p "${R2PM_ETCD}" || exit 1 8 | echo '$r2com=#!pipe python '"'$(pwd)'"'/r2com.py' > "${R2PM_ETCD}/r2com" || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_ETCD}"/r2com 13 | } 14 | 15 | R2PM_END 16 | -------------------------------------------------------------------------------- /db/r2diaphora: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Diaphora binary diffing tool for radare2" 4 | 5 | # R2PM_GIT "https://github.com/radareorg/r2diaphora" 6 | # ${MAKE} install PREFIX="${R2PM_PREFIX}" 7 | # ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 8 | 9 | R2PM_INSTALL() { 10 | pip install r2diaphora 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | pip uninstall r2diaphora 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/r2pipe-js: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Node.js r2pipe module" 4 | 5 | R2PM_INSTALL() { 6 | if [ "${GLOBAL}" = 1 ]; then 7 | ${SUDO} npm install -g r2pipe 8 | else 9 | npm install r2pipe 10 | fi 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | if [ "${GLOBAL}" = 1 ]; then 15 | ${SUDO} npm uninstall -g r2pipe 16 | else 17 | npm uninstall r2pipe 18 | fi 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/r2jadx: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "JADX decompiler integration plugin for radare2" 5 | R2PM_DEPS jadx 6 | 7 | R2PM_INSTALL() { 8 | cd r2jadx || exit 1 9 | rm -rf node_modules 10 | ${MAKE} || exit 1 11 | ${MAKE} install || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} uninstall || exit 1 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/rune: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/sushant94/rune" 4 | R2PM_DESC "Radare symbolic execution in Rust" 5 | 6 | R2PM_INSTALL() { 7 | cargo update --verbose || exit 1 8 | cargo build --verbose || exit 1 9 | ln -fs `pwd`/target/debug/runec \ 10 | "${R2PM_BINDIR}"/runec || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_BINDIR}"/runec 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/vdexextractor: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/anestisb/vdexExtractor" 4 | R2PM_DESC "Verified DEX extractor from OAT files" 5 | 6 | BINDIR="${R2PM_BINDIR}" 7 | 8 | R2PM_INSTALL() { 9 | sh make.sh || exit 1 10 | ln -fs "${PWD}/bin/vdexExtractor" "${R2PM_BINDIR}/vdexExtractor" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${BINDIR}"/vdexExtractor 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/mai: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/trufae/mai" 4 | R2PM_DESC "My Artificial Intelligence Toolkit" 5 | 6 | R2PM_INSTALL() { 7 | if [ "${GLOBAL}" = 1 ]; then 8 | ${MAKE} -j || exit 1 9 | ${SUDO} ${MAKE} install || exit 1 10 | else 11 | echo "Global install only" 12 | exit 1 13 | fi 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | ${SUDO} ${MAKE} uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2poke: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/radare2-extras" 4 | R2PM_DESC "GNU Poke integration with radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd r2poke || exit 1 8 | ${MAKE} clean 9 | ${MAKE} || exit 1 10 | ${MAKE} user-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | cd r2poke || exit 1 15 | ${MAKE} uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/dwarf-writer: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/immunant/dwarf-writer" 4 | R2PM_DESC "Write reversing tool symbols into DWARF files" 5 | 6 | R2PM_NEEDS "cargo rustc" 7 | 8 | R2PM_INSTALL() { 9 | cargo build --release 10 | cp -f target/release/dwarf-writer "${R2PM_BINDIR}/dwarf-writer" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_BINDIR}/dwarf-writer" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/hexagon: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Hexagon QDSP6 analysis plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/arch/hexagon || exit 1 9 | ${MAKE} clean 10 | ${MAKE} || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PLUGDIR}/arch_hexagon."* 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/rlang-lua: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Lua scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C lua || exit 1 9 | ${R2PM_SUDO} ${MAKE} -C lua user-install || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${R2PM_SUDO} ${MAKE} -C lua user-uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/capstone-next: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/capstone-engine/capstone" 4 | R2PM_DESC "Capstone disassembler library (next branch)" 5 | 6 | R2PM_INSTALL() { 7 | git pull ; git checkout next ; git pull 8 | ${MAKE} PREFIX="${R2PM_PREFIX}" 9 | ${MAKE} install PREFIX="${R2PM_PREFIX}" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/esil2reil: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Convert ESIL expressions to REIL snippets" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C esil2reil 9 | cp -f esil2reil/*.${LIBEXT} "${R2PM_PLUGDIR}" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_PLUGDIR}"/*esil2reil* 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/imcat: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/stolk/imcat" 4 | R2PM_DESC "Display PNG images in terminal" 5 | 6 | R2PM_INSTALL() { 7 | [ -z "$CC" ] && CC=gcc 8 | ${CC} -o imcat imcat.c || exit 1 9 | ${SUDO} mkdir -p "${R2PM_PREFIX}/bin" 10 | ${SUDO} cp -f imcat "${R2PM_PREFIX}/bin/imcat" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PREFIX}/bin/imcat" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/ninja: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/ninja-build/ninja" 4 | R2PM_DESC "Ninja build system" 5 | 6 | R2PM_INSTALL() { 7 | python configure.py --bootstrap || exit 1 8 | mkdir -p ${R2PM_PREFIX}/bin || exit 1 9 | ${R2PM_SUDO} cp -f ninja \ 10 | "${R2PM_PREFIX}/bin/ninja" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${R2PM_SUDO} rm -f "${R2PM_PREFIX}/bin/ninja" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/python: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Set up Python virtual environment for r2pm" 4 | 5 | R2PM_INSTALL() { 6 | python -m venv "${R2PM_PREFIX}/venv" 7 | } 8 | 9 | R2PM_UNINSTALL() { 10 | rm -rf "${R2PM_PREFIX}/venv" 11 | } 12 | 13 | R2PM_INSTALL_WINDOWS() { 14 | python -m venv "%R2PM_PREFIX%\venv" 15 | } 16 | 17 | R2PM_UNINSTALL_WINDOWS() { 18 | deltree "%R2PM_PREFIX%\venv" 19 | } 20 | 21 | R2PM_END 22 | 23 | -------------------------------------------------------------------------------- /db/r2apktool: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "APK decompiler alternative to apktool" 4 | 5 | R2PM_INSTALL() { 6 | rm "${R2PM_USRDIR}/git/r2apktool" 7 | wget -c https://raw.githubusercontent.com/h4ng3r/r2apktool/master/r2apktool.py \ 8 | -O ${R2PM_BINDIR}/r2apktool 9 | chmod +x ${R2PM_BINDIR}/r2apktool 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_BINDIR}"/r2apktool 14 | } 15 | 16 | R2PM_END 17 | 18 | -------------------------------------------------------------------------------- /db/renef: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/ahmeth4n/renef" 4 | R2PM_DESC "Dynamic instrumentation toolkit for Android ARM64" 5 | 6 | R2PM_INSTALL() { 7 | make client 8 | mkdir -p "${R2PM_PREFIX}/bin" 9 | cp build/renef "${R2PM_PREFIX}/bin/renef" 10 | chmod +x "${R2PM_PREFIX}/bin/renef" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PREFIX}/bin/renef" 15 | } 16 | 17 | R2PM_END 18 | 19 | -------------------------------------------------------------------------------- /db/rlang-mujs: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "MuJS ES5 interpreter for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C mujs || exit 1 9 | ${R2PM_SUDO} ${MAKE} -C mujs user-install || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${R2PM_SUDO} ${MAKE} -C mujs user-uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/rlang-tiny: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "QuickJS scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure || exit 1 8 | cd tiny || exit 1 9 | ${MAKE} clean || exit 1 10 | ${MAKE} || exit 1 11 | ${MAKE} user-install || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} -C tiny user-uninstall || exit 1 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/rlang-wren: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Wren scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C wren || exit 1 9 | ${R2PM_SUDO} ${MAKE} -C wren user-install || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${R2PM_SUDO} ${MAKE} -C wren user-uninstall 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/m32c: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "M32C disassembler plugin from GNU binutils for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C libr/asm/arch/m32c || exit 1 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | rm -f "${R2PM_PLUGDIR}/asm_m32c"* 13 | rm -f "${R2PM_PLUGDIR}/anal_m32c"* 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/rlang-qjs: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "QuickJS scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure || exit 1 8 | cd quickjs || exit 1 9 | ${MAKE} clean || exit 1 10 | ${MAKE} || exit 1 11 | ${MAKE} user-install || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} -C quickjs user-uninstall || exit 1 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/pimp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Triton-based plugin for concolic execution in radare2" 5 | 6 | R2PM_INSTALL() { 7 | PIMPDIR="${R2PM_PLUGDIR}/pimp" 8 | cd pimp || exit 1 9 | mkdir -p "${PIMPDIR}" 10 | cp *.py ${PIMPDIR} || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | PIMPDIR="${R2PM_PLUGDIR}/pimp" 15 | rm -rf "${PIMPDIR}" 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/radare: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare" 4 | R2PM_DESC "Nostalgic edition of the original radare" 5 | 6 | R2PM_INSTALL() { 7 | if [ "${GLOBAL}" = 1 ]; then 8 | ./configure 9 | else 10 | ./configure --prefix="${R2PM_PREFIX}" 11 | fi 12 | ${MAKE} 13 | ${R2PM_SUDO} ${MAKE} install 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | ${R2PM_SUDO} ${MAKE} uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/rlang-tcl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Script radare2 with TCL via rlang" 5 | 6 | R2PM_INSTALL() { 7 | ./configure 8 | cd tcl 9 | ${MAKE} clean || exit 1 10 | ${MAKE} || exit 1 11 | ${R2PM_SUDO} ${MAKE} install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${R2PM_SUDO} ${MAKE} -C tcl uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/rlang-vlang: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "V language scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure 8 | ${MAKE} -C vlang clean || exit 1 9 | ${MAKE} -C vlang || exit 1 10 | ${MAKE} -C vlang install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${MAKE} -C vlang uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/r2elisa: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Conversational shell for radare2" 5 | 6 | R2PM_INSTALL() { 7 | B="${R2PM_PREFIX}/bin/r2elisa" 8 | cd r2elisa 9 | npm i 10 | echo "#!/bin/sh" > $B 11 | echo "node $PWD/index.js" '$*' >> $B 12 | chmod +x $B 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | B="${R2PM_PREFIX}/bin/r2elisa" 17 | rm -f "${B}" 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2pipe-ts: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Renewed r2pipe module for Node.js in TypeScript" 4 | 5 | R2PM_INSTALL() { 6 | if [ "${GLOBAL}" = 1 ]; then 7 | ${SUDO} npm install -g r2pipe-ts 8 | else 9 | npm install r2pipe-ts 10 | fi 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | if [ "${GLOBAL}" = 1 ]; then 15 | ${SUDO} npm uninstall -g r2pipe-ts 16 | else 17 | npm uninstall r2pipe-ts 18 | fi 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/valabind: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/valabind" 4 | R2PM_DESC "Valabind tool for generating bindings from VAPI files" 5 | R2PM_DEPS vala 6 | 7 | R2PM_INSTALL() { 8 | ${MAKE} clean 9 | ${MAKE} || exit 1 10 | ${R2PM_SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${R2PM_SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" || exit 1 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/valgrind: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_SVN svn://svn.valgrind.org/valgrind/trunk valgrind 4 | R2PM_DESC "Valgrind memory debugging and profiling tool" 5 | 6 | R2PM_INSTALL() { 7 | ${SHELL} autogen.sh || exit 1 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | ${MAKE} -j6 || exit 1 10 | ${R2PM_SUDO} ${MAKE} install || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${R2PM_SUDO} ${MAKE} uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/zigup: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/marler8997/zigup" 4 | R2PM_DESC "Keep Zig toolchain up to date" 5 | 6 | R2PM_INSTALL() { 7 | wget https://github.com/marler8997/zigup/releases/download/v2022_08_25/zigup.macos-latest-aarch64.zip 8 | unzip zigup.macos-latest-aarch64.zip 9 | cp -f zigup "${R2PM_BINDIR}/zigup" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_BINDIR}/zigup" 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/machoke: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/conix-security/machoke" 4 | R2PM_DESC "CFG-based fuzzy hash for malware classification" 5 | 6 | R2PM_INSTALL() { 7 | ${SUDO} pip3 install mmh3 r2pipe 8 | mkdir -p ${R2PM_BINDIR} 9 | cp machoke.py "${R2PM_BINDIR}"/machoke 10 | chmod +x "${R2PM_BINDIR}"/machoke 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_BINDIR}"/machoke 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/smali: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Smali assembler" 4 | 5 | R2PM_INSTALL() { 6 | cd "${R2PM_USRDIR}/git" 7 | wget -c https://bitbucket.org/JesusFreke/smali/downloads/smali-2.5.2.jar 8 | mkdir -p "${R2PM_BINDIR}" 9 | echo "java -jar ${R2PM_USRDIR}/git/"'smali-2.5.2.jar $@' > "${R2PM_BINDIR}/smali" 10 | chmod +x "${R2PM_BINDIR}/smali" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm "${R2PM_BINDIR}"/smali 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/sqsh-tools: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ https://github.com/Gottox/sqsh-tools/releases/download/v1.4.0/sqsh-tools-1.4.0.tar.gz 4 | R2PM_DESC "SquashFS utilities" 5 | 6 | R2PM_NEEDS "gcc meson ninja" 7 | 8 | R2PM_INSTALL() { 9 | cd sqsh-tools-1.4.0 10 | rm -rf b 11 | meson b 12 | ninja -C b 13 | ninja -C b install 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | cd sqsh-tools-1.4.0 18 | ninja -C b uninstall 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/unicorn-lib: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/unicorn-engine/unicorn" 4 | R2PM_DESC "Unicorn emulation library" 5 | 6 | R2PM_INSTALL() { 7 | cmake . "-DCMAKE_INSTALL_PREFIX:PATH=${R2PM_PREFIX}" 8 | ${MAKE} -j${R2PM_JOBS} || exit 1 9 | ${R2PM_SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | ${R2PM_SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/esilburner: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/mrmacete/r2scripts" 4 | R2PM_DESC "Burn asm.emu results into comments (MIPS oriented)" 5 | 6 | R2PM_INSTALL() { 7 | mkdir -p "${R2PM_ETCD}" || exit 1 8 | cd esilburner || exit 1 9 | echo '$esilburner=#!pipe python '"'$(pwd)'"'/esilburner.py' > "${R2PM_ETCD}/esilburner" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_ETCD}"/esilburner 14 | } 15 | 16 | R2PM_END 17 | -------------------------------------------------------------------------------- /db/miasm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | #R2PM_GIT "https://github.com/cea-sec/miasm" 4 | R2PM_GIT "https://github.com/trufae/miasm" 5 | R2PM_DESC "Python reverse engineering framework" 6 | 7 | R2PM_INSTALL() { 8 | git checkout -b fix-macos-build || true 9 | git pull origin fix-macos-build 10 | python setup.py build 11 | sudo python setup.py install 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | sudo python setup.py uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/ldid2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | # R2PM_GIT "https://github.com/xerub/ldid" 4 | R2PM_GIT "https://github.com/razum2um/ldid" 5 | R2PM_DESC "LDID2 fork for signing iOS binaries" 6 | 7 | R2PM_INSTALL() { 8 | ${MAKE} 9 | mkdir -p "${R2PM_BINDIR}" 10 | cp -f ldid "${R2PM_BINDIR}/ldid" 11 | cp -f ldid2 "${R2PM_BINDIR}/ldid2" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_BINDIR}"/ldid 16 | rm -f "${R2PM_BINDIR}"/ldid2 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/rlang-duktape: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Duktape JavaScript scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean || sleep 0 8 | ./configure || exit 1 9 | ${MAKE} -C duktape || exit 1 10 | ${MAKE} -C duktape install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${MAKE} -C duktape uninstall || exit 1 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/ios-kernelcache: -------------------------------------------------------------------------------- 1 | im db/blackfin R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/mrmacete/r2-ios-kernelcache" 4 | R2PM_DESC "iOS kernelcache loader for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean 8 | ${MAKE} || exit 1 9 | cp -f bin_kernelcache.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm -f "${R2PM_PLUGDIR}/bin_kernelcache.${R2_LIBEXT}" || exit 1 14 | ${MAKE} uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/radare2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Symlinked installation of radare2 from git" 5 | 6 | R2PM_INSTALL() { 7 | if [ "${GLOBAL}" = 1 ]; then 8 | sys/install.sh 9 | else 10 | sys/install.sh ${R2PM_PREFIX} 11 | fi 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | if [ "${GLOBAL}" = 1 ]; then 16 | sys/uninstall.sh 17 | else 18 | sys/uninstall.sh "${R2PM_PREFIX}" 19 | fi 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/radius2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/aemmitt-ns/radius" 4 | R2PM_DESC "Fast symbolic execution with radare2" 5 | 6 | R2PM_NEEDS "rustc cargo cmake" 7 | 8 | R2PM_INSTALL() { 9 | cargo update --verbose || exit 1 10 | cargo build --verbose || exit 1 11 | ln -fs `pwd`/target/debug/radius2 \ 12 | "${R2PM_BINDIR}"/radius2 || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_BINDIR}"/radius2 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/sibyl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/cea-sec/Sibyl" 4 | R2PM_DESC "Sibyl function divination based on Miasm2" 5 | R2PM_DEPS miasm 6 | 7 | R2PM_INSTALL() { 8 | pwd 9 | ls 10 | python setup.py build 11 | sudo python setup.py install 12 | ln -fs ${PWD}/ext/radare2/r2_find.py ${R2PM_BINDIR}/r2sibyl 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f ${R2PM_BINDIR}/r2sibyl 17 | sudo python setup.py uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/asahi: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Disassembler plugin for Apple M1 GPU" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C asahi clean 9 | ${MAKE} -C asahi 10 | ${MAKE} -C asahi install R2_USER_PLUGINS="${R2PM_PLUGDIR}" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | ${MAKE} -C asahi uninstall R2_USER_PLUGINS="${R2PM_PLUGDIR}" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/ba2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Beyond Architecture 2 disassembler plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} || exit 1 11 | cp -f asm_ba2.${LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/asm_ba2."* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/keystone-lib: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/keystone-engine/keystone" 4 | R2PM_DESC "Keystone assembler library" 5 | 6 | R2PM_INSTALL() { 7 | mkdir build 8 | cd build || exit 1 9 | cmake -DCMAKE_INSTALL_PREFIX:PATH=${R2PM_PREFIX} .. 10 | ${MAKE} -j4 11 | ${R2PM_SUDO} ${MAKE} -j${R2PM_JOBS} install 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | pwd 16 | cd build || exit 1 17 | ${R2PM_SUDO} ${MAKE} uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2-copilot: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/darallium/r2-copilot" 4 | R2PM_DESC "r2-copilot an MCP using r2pipe with focus on CTF challenges" 5 | 6 | R2PM_INSTALL() { 7 | python -m venv .venv 8 | . ./.venv/bin/activate 9 | uv sync 10 | echo "cd '${PWD}'; ./start.sh" > ${R2PM_BINDIR}/r2-copilot 11 | chmod +x "${R2PM_BINDIR}/r2-copilot" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f ${R2PM_BINDIR}/r2-copilot 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/rl78: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "RL78 Renesas 8-bit architecture disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | # export PKG_CONFIG_PATH="${R2PM_PREFIX}/lib/pkgconfig" 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | ${MAKE} clean 10 | ${MAKE} -C libr/anal rl78 || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PLUGDIR}/"anal_rl78.* 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/x86tab: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "X86 Tab assembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr || exit 1 9 | ${MAKE} clean 10 | ${MAKE} tab || exit 1 11 | ${MAKE} tab-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd baleful 16 | rm -f "${R2PM_PLUGDIR}"/*tab* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/x86udis: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "X86 Udis86 disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr || exit 1 9 | ${MAKE} clean 10 | ${MAKE} udis86 || exit 1 11 | ${MAKE} udis86-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}"/*udis* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/emscripten: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/juj/emsdk.git" 4 | R2PM_DESC "Emscripten C/C++ compiler to asm.js/WASM" 5 | 6 | R2PM_INSTALL() { 7 | ./emsdk update 8 | ./emsdk update-tags 9 | ./emsdk activate latest 10 | echo 11 | echo "Add this to your .profile" 12 | echo 13 | echo "source $PWD/emsdk_env.sh" 14 | echo 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | echo "Just drop the source line from your .profile" 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/gmni: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://git.sr.ht/~sircmpwn/gmni" 4 | R2PM_DESC "Command-line Gemini client" 5 | R2PM_DEPS bearssl 6 | 7 | R2PM_INSTALL() { 8 | export CFLAGS="-w -I${R2PM_PREFIX}/include" 9 | export LDFLAGS="-L${R2PM_PREFIX}/lib" 10 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 11 | ${MAKE} -j 4 || exit -1 12 | ${MAKE} install || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | ${MAKE} uninstall || exit 1 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/x86olly: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "X86 Olly assembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr || exit 1 9 | ${MAKE} clean 10 | ${MAKE} olly || exit 1 11 | ${MAKE} olly-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd baleful 16 | rm -f "${R2PM_PLUGDIR}"/*olly* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/apktool: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "APK decompiler and recompiler" 4 | 5 | R2PM_INSTALL() { 6 | cd "${R2PM_USRDIR}/git" 7 | wget -c https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar 8 | mkdir -p "${R2PM_BINDIR}" 9 | echo "java -jar ${R2PM_USRDIR}/git/"'apktool_2.9.3.jar $@' > "${R2PM_BINDIR}/apktool" 10 | chmod +x "${R2PM_BINDIR}/apktool" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm "${R2PM_BINDIR}"/apktool 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/bcl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "BaseCall DNA sequence disassembler and analyzer for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C bcl || exit 1 9 | ${MAKE} -C bcl install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | rm ${R2PM_PLUGDIR}/*bcl* || exit 1 14 | #${MAKE} -C bcl uninstall 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/io-ewf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "EWF forensic image loader for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/io/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} ewf || R2PM_FAIL Build 11 | ${MAKE} ewf-install || R2PM_FAIL Install 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd libr/io/p 16 | ${MAKE} ewf-uninstall || R2PM_FAIL 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/nios: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Altera Nios embedded processor disassembly support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | ${MAKE} -C libr clean 9 | ${MAKE} -C libr nios || exit 1 10 | ${MAKE} -C libr nios-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PLUGDIR}/asm_nios."* 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/x86bea: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "X86 BeaEngine disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr || exit 1 9 | ${MAKE} clean 10 | ${MAKE} bea || exit 1 11 | ${MAKE} bea-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd baleful 16 | rm -f "${R2PM_PLUGDIR}"/*bea* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/baksmali: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Baksmali DEX to smali converter" 4 | 5 | R2PM_INSTALL() { 6 | cd "${R2PM_USRDIR}/git" 7 | wget -c https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar 8 | mkdir -p "${R2PM_BINDIR}" 9 | echo "java -jar ${R2PM_USRDIR}/git/"'baksmali-2.5.2.jar $@' > "${R2PM_BINDIR}/baksmali" 10 | chmod +x "${R2PM_BINDIR}/baksmali" 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm "${R2PM_BINDIR}"/baksmali 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/llama.cpp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/ggerganov/llama.cpp 4 | R2PM_DESC "Advanced open-source language model implementation" 5 | 6 | R2PM_NEEDS "gcc make cmake" 7 | 8 | R2PM_INSTALL() { 9 | cmake -DCMAKE_INSTALL_PREFIX:PATH=${R2PM_PREFIX} -DCMAKE_CXX_FLAGS="-O2 -fPIC" -DCMAKE_SHARED_LINKER_FLAGS=-fPIC . 10 | ${MAKE} -j4 11 | ${R2PM_SUDO} ${MAKE} install 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${R2PM_SUDO} ${MAKE} uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/ppcdisasm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Tiny PowerPC disassembler plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" 8 | cd libr/asm/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} asm_ppc_disasm.${R2_LIBEXT} || exit 1 11 | cp -f asm_ppc_disasm.${R2_LIBEXT} ${R2PM_PLUGDIR} 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/asm_ppc_disasm."* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/r2skel: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-skel" 4 | R2PM_DESC "Create skeletons for radare2 scripts and plugins" 5 | 6 | R2PM_INSTALL() { 7 | if [ "${R2PM_GLOBAL}" = 1 ]; then 8 | ${R2PM_SUDO} make install 9 | else 10 | make user-install 11 | fi 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | if [ "${R2PM_GLOBAL}" = 1 ]; then 16 | ${R2PM_SUDO} make uninstall 17 | else 18 | make user-uninstall 19 | fi 20 | } 21 | 22 | R2PM_END 23 | 24 | -------------------------------------------------------------------------------- /db/insert_dylib: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/Tyilo/insert_dylib" 4 | R2PM_DESC "Insert dylib into Mach-O for macOS" 5 | 6 | R2PM_INSTALL() { 7 | if [ "`uname`" != Darwin ]; then 8 | echo "This program can only be compiled on OSX" 9 | exit 1 10 | fi 11 | xcodebuild || exit 1 12 | cp -f build/Release/insert_dylib "${R2PM_PREFIX}/insert_dylib" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PREFIX}/insert_dylib" 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/r2ai-docker: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2ai" 4 | R2PM_DESC "Docker setup for r2ai" 5 | 6 | R2PM_INSTALL() { 7 | cd dist/docker || return 1 8 | docker build -t r2ai. 9 | echo 10 | echo '$ docker run -ti r2ai' 11 | echo 12 | BIN="${R2PM_PREFIX}/bin/r2ai" 13 | echo '#!/bin/sh' > $BIN 14 | echo 'docker run -v /tmp:/tmp -ti r2ai' >> $BIN 15 | chmod +x $BIN 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | docker rmi -f r2ai 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/uncrustify: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/uncrustify/uncrustify 4 | R2PM_DESC "Uncrustify code beautifier" 5 | 6 | R2PM_INSTALL() { 7 | mkdir build 8 | cd build || exit 1 9 | cmake .. || exit 1 10 | mkdir -p "${R2PM_BINDIR}" || exit 1 11 | ${MAKE} -j4 || exit 1 12 | echo cp -f uncrustify "${R2PM_BINDIR}" 13 | cp -f uncrustify "${R2PM_BINDIR}" || exit 1 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | rm -f "${R2PM_BINDIR}"/uncrustify 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/unzip-lzfse: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/sskaje/unzip-lzfse" 4 | R2PM_DESC "Unzip fork with LZFSE support" 5 | 6 | R2PM_INSTALL() { 7 | chmod +x unix/configure 8 | LZFSE_PATH=/usr/local make -f unix/Makefile CF='-DUSE_LZFSE=1 -c -O3 -Wall -DBSD -I. -Ibzip2 -DUNIX' LF2=-llzfse all 9 | mkdir -p ${R2PM_BINDIR} 10 | cp unzip ${R2PM_BINDIR}/unzip-lzfse 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -rf ${R2PM_BINDIR}/unzip-lzfse 15 | } 16 | 17 | R2PM_END 18 | 19 | -------------------------------------------------------------------------------- /db/llamafile: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ https://github.com/Mozilla-Ocho/llamafile/releases/download/0.9.3/llamafile-0.9.3.zip 4 | R2PM_DESC "Distribute and run LLMs with a single file" 5 | 6 | R2PM_INSTALL() { 7 | cd llamafile-0.9.3/bin/ 8 | for a in * ; do ln -fs ${PWD}/$a "${R2PM_BINDIR}/$a" ; done 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | cd llamafile-0.8.17/bin/ 13 | for a in * ; do rm -f "${R2PM_BINDIR}/$a" ; done 14 | rm -f ${R2PM_BINDIR}/llamafile* 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/zpu: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "ZPU microprocessor assembly support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd zpu || exit 1 9 | ${MAKE} clean 10 | ${MAKE} || exit 1 11 | ${MAKE} install R2_PLUGIN_PATH="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd zpu || exit 1 16 | ${MAKE} uninstall "${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/blackfin: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "BlackFin architecture plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} arch_blackfin.${R2_LIBEXT} || exit 1 11 | cp -f arch_blackfin.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/arch_blackfin."* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/decai: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2ai" 4 | R2PM_DESC "LLM-based decompiler for radare2 using r2js" 5 | R2PM_NEEDS curl 6 | 7 | R2PM_INSTALL() { 8 | ${MAKE} -C decai user-install 9 | } 10 | 11 | R2PM_UNINSTALL() { 12 | ${MAKE} -C decai user-uninstall 13 | } 14 | 15 | R2PM_INSTALL_WINDOWS() { 16 | copy /y decai\decai.r2.js %R2PM_PLUGDIR%\decai.r2.js 17 | } 18 | 19 | R2PM_UNINSTALL_WINDOWS() { 20 | del %R2PM_PLUGDIR%\decai.r2.js 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/m68k-net: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "M68K disassembler and analyzer for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr 9 | ${MAKE} clean 10 | ${MAKE} m68k || exit 1 11 | ${MAKE} m68k-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/asm_m68k_net."* 16 | rm -f "${R2PM_PLUGDIR}/anal_m68k_net."* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/r2rls: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-release" 4 | R2PM_DESC "Radare2 releasing machinery" 5 | 6 | R2PM_INSTALL() { 7 | $MAKE CONFIG 8 | if [ "${GLOBAL}" = 1 ]; then 9 | $MAKE install 10 | else 11 | $MAKE install PREFIX=${R2PM_PREFIX} 12 | fi 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | $MAKE CONFIG 17 | if [ "${GLOBAL}" = 1 ]; then 18 | $MAKE uninstall 19 | else 20 | $MAKE uninstall PREFIX="${R2PM_PREFIX}" 21 | fi 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/winapi: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Get info about Windows functions" 4 | 5 | BINDIR="${R2PM_PLUGDIR}/../bin" 6 | 7 | R2PM_INSTALL() { 8 | mkdir -p "${BINDIR}" 9 | echo '#!/bin/sh' > "${BINDIR}/winapi" 10 | echo 'curl https://source.winehq.org/WineAPI/${1}.html 2>/dev/null | grep DESCRIPTION -A 1 | tail -n "+2" | sed -e "s/<[^>]*>//g"' > "${BINDIR}/winapi" 11 | chmod +x "${BINDIR}"/winapi 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${BINDIR}"/winapi 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/bearssl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | R2PM_TGZ https://www.bearssl.org/bearssl-0.6.tar.gz 3 | R2PM_DESC "Command-line Gemini client" 4 | 5 | R2PM_INSTALL() { 6 | cd bearssl-0.6 7 | ${MAKE} -j 4 || exit 1 8 | mkdir -p ${R2PM_PREFIX}/include ${R2PM_PREFIX}/lib 9 | cp -rf inc/bearssl* ${R2PM_PREFIX}/include 10 | cp -f build/libbearssl.a ${R2PM_PREFIX}/lib 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -rf ${R2PM_PREFIX}/include/bearssl* 15 | rm -f ${R2PM_PREFIX}/lib/libbearssl.a 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/x86zyan: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "X86 Zyan disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm || exit 1 9 | ${MAKE} clean || exit 1 10 | ${MAKE} zyan-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | cd libr/asm || exit 1 15 | ${MAKE} zyan-uninstall R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/zig-masm32: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Get zignatures for MASM32 libraries" 4 | 5 | USER_ZIGNS="$(r2 -hh|grep USER_ZIGNS|awk '{print $2}')" 6 | 7 | R2PM_INSTALL() { 8 | eval mkdir -p "${USER_ZIGNS}" 9 | eval cd "${USER_ZIGNS}" 10 | wget https://github.com/radareorg/radare2-sigs/releases/download/v1.0/masm32.zip 11 | unzip masm32.zip 12 | rm masm32.zip 13 | exit 1 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | eval rm "${USER_ZIGNS}/masm32.zig.gz" 18 | exit 1 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/libdwarf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "git://git.code.sf.net/p/libdwarf/code" libdwarf-code 4 | R2PM_DESC "Libdwarf library from git" 5 | 6 | R2PM_INSTALL() { 7 | # if ! $(pkg-config --exists libelf) || ! $(pkg-config --exists zlib); then 8 | # echo "ERROR: Libraries required: libelf and zlib"; exit 1 9 | # fi 10 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 11 | ${MAKE} || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} distclean PREFIX="${R2PM_PREFIX}" 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/modality: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/chase1635321/Modality" 4 | R2PM_DESC "Plugin to integrate angr with radare2" 5 | 6 | R2PM_INSTALL() { 7 | ${R2PM_SUDO} cp -f plugin.py "${R2PM_PLUGDIR}" || exit 1 8 | echo Adding src to PYTHONPATH 9 | echo export PYTHONPATH=${R2PM_GITDIR}Modality/src:$PYTHONPATH >> ~/.bashrc 10 | export PYTHONPATH=${R2PM_GITDIR}Modality/src:$PYTHONPATH 11 | } 12 | 13 | R2PM_UNINSTALL() { 14 | rm -f "${R2PM_PLUGDIR}/"plugin.py 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/spp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radare/spp" 4 | R2PM_DESC "Multi-syntax SPP text preprocessor" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean 8 | ${MAKE} PREFIX="${R2PM_PREFIX}" || exit 1 9 | if [ "${GLOBAL}" = 1 ]; then 10 | ${SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 11 | else 12 | ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 13 | fi 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/agc: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "AGC disassembly module for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX} || exit 1 8 | cd libr/asm/p 9 | ${MAKE} clean 10 | ${MAKE} asm_agc.${R2_LIBEXT} || exit 1 11 | cp -f asm_agc.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | echo "cp -f asm_agc.${R2_LIBEXT} ${R2PM_PLUGDIR}" 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PLUGDIR}/asm_agc".* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/jaguar-gpu: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Jaguar GPU assembly support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd jaguar-gpu || exit 1 9 | ${MAKE} clean 10 | ${MAKE} || exit 1 11 | ${MAKE} install R2_PLUGIN_PATH="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd jaguar-gpu || exit 1 16 | ${MAKE} uninstall "${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_END 20 | 21 | -------------------------------------------------------------------------------- /db/psosvm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "PSOSVM disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p || exit 1 9 | ${MAKE} asm_psosvm.${R2_LIBEXT} || exit 1 10 | cp -f asm_psosvm.${R2_LIBEXT} ${R2PM_PLUGDIR} || exit 1 11 | echo "cp asm_psosvm.${R2_LIBEXT} ${R2PM_PLUGDIR}" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/asm_psosvm."* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/r0: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r0" 4 | R2PM_DESC "Minimal hexadecimal editor and disassembler" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean 8 | ${MAKE} PREFIX="${R2PM_PREFIX}" || exit 1 9 | if [ "${GLOBAL}" = 1 ]; then 10 | ${SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 11 | else 12 | ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 13 | fi 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2-lua53: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Lua 5.3 disassembler, analyzer and bin parser plugins for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd lua53 || R2PM_FAIL "Cd" 8 | ${MAKE} || R2PM_FAIL "Build failed" 9 | ${MAKE} install LIBR_PLUGINS=${R2PM_PLUGDIR} || R2PM_FAIL "Install" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | cd lua53 || R2PM_FAIL "Cd" 14 | ${MAKE} uninstall LIBR_PLUGINS=${R2PM_PLUGDIR} || R2PM_FAIL "UnInstall" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/r2api-perl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native Perl API bindings for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" --enable=perl || exit 1 8 | ${SUDO} $MAKE install-vapi DESTDIR="${R2PM_DESTDIR}" || exit 1 9 | cd perl 10 | $MAKE clean 11 | $MAKE || exit 1 12 | sudo $MAKE install DESTDIR="${R2PM_DESTDIR}" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | cd perl 17 | $MAKE uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2commodore: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/thestr4ng3r/r2commodore.git" 4 | R2PM_DESC "CBM Basic support for radare2 (C64, VIC-20, PET, ...)" 5 | 6 | R2PM_DOC="" 7 | 8 | R2PM_INSTALL() { 9 | mkdir -p build && cd build || exit 1 10 | cmake -DRADARE2_INSTALL_PLUGDIR="${R2PM_PLUGDIR}" .. || exit 1 11 | ${MAKE} -j4 || exit 1 12 | ${MAKE} install || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | cd build || exit 1 17 | cat install_manifest.txt | xargs rm -rv 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2docker: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Ubuntu" 5 | 6 | R2PM_INSTALL() { 7 | cd dist/docker || return 1 8 | docker build -t r2docker . 9 | echo 10 | echo '$ docker run -ti r2docker' 11 | echo 12 | BIN="${R2PM_PREFIX}/bin/r2docker" 13 | echo '#!/bin/sh' > $BIN 14 | echo 'docker run -v /tmp:/tmp -ti r2docker' >> $BIN 15 | chmod +x $BIN 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | docker rmi -f r2docker 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/microblaze: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "MicroBlaze microprocessor assembly support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd microblaze || exit 1 9 | ${MAKE} clean 10 | ${MAKE} || exit 1 11 | ${MAKE} install R2_PLUGIN_PATH="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd microblaze || exit 1 16 | ${MAKE} uninstall "${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/simulavr: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/Traumflug/simulavr 4 | R2PM_DESC "SimulAVR AVR simulator with GDB server" 5 | 6 | R2PM_INSTALL() { 7 | glibtoolize --force 2> /dev/null || libtoolize --force 8 | autoheader 9 | aclocal --install 10 | autoconf 11 | automake --force-missing --add-missing 12 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 13 | make -j 4 || exit -1 14 | make install || exit 1 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | make uninstall || exit 1 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/vc4: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "VC4/Raspberry Pi VideoCore4 plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} arch_vc4.${R2_LIBEXT} || exit 1 11 | mkdir -p "${R2PM_PLUGDIR}" || exit 1 12 | cp -f arch_vc4.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PLUGDIR}"/*vc4* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/os9: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/thestr4ng3r/r2-os9.git" 4 | R2PM_DESC "OS-9 module plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | mkdir build 8 | cd build || exit 1 9 | cmake -DPLUGINS_INSTALL_PATH="${R2PM_PLUGDIR}" .. || exit 1 10 | mkdir -p "${R2PM_PLUGDIR}" || exit 1 11 | ${MAKE} clean 12 | ${MAKE} -j4 || exit 1 13 | ${MAKE} install || exit 1 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | cd build || exit 1 18 | cat install_manifest.txt | xargs rm -rv || exit 1 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/r2b-lua: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native Lua SWIG bindings" 5 | # R2PM_DEPS valabind lua-lib 6 | 7 | R2PM_INSTALL() { 8 | ./configure --prefix="${R2PM_PREFIX}" --enable=lua || exit 1 9 | cd lua || exit 1 10 | ${MAKE} clean 11 | ${MAKE} -j ${R2PM_JOBS} || exit 1 12 | ${R2PM_SUDO} ${MAKE} -j${R2PM_JOBS} install-lua || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | cd build || exit 1 17 | ${R2PM_SUDO} ${MAKE} uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/ssdeep: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "ssdeep plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd ssdeep/ssdeep-plugin/ || exit 1 8 | export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/ 9 | ./configure --prefix="${R2PM_PREFIX}" || R2PM_FAIL "Configure" 10 | ${MAKE} || R2PM_FAIL "Build" 11 | ${MAKE} install || R2PM_FAIL "Install" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd ssdeep/ssdeep-plugin && ${MAKE} uninstall 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/r2dec: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/wargio/r2dec-js r2dec 4 | R2PM_DESC "Latest r2dec decompiler using QuickJS" 5 | 6 | R2PM_NEEDS "gcc make ninja meson" 7 | 8 | R2PM_RELOAD() { 9 | Lc-r2dec 10 | Lc libcore_pdd 11 | } 12 | 13 | R2PM_INSTALL() { 14 | meson setup -Dr2_plugdir=${R2PM_PLUGDIR} b --backend=ninja --wipe || exit 1 15 | ninja -C b || exit 1 16 | ninja -C b install || exit 1 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | rm -f ${R2PM_PLUGDIR}/libcore_pdd.${R2_LIBEXT} 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/vala: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | # XXX globals are no longer supported 4 | VV="0.50.2" 5 | # XXX this is not gonna work with r2pm.c 6 | SV="$(echo ${VV}|cut -d . -f 1,2)" 7 | 8 | R2PM_TGZ "http://download.gnome.org/sources/vala/${SV}/vala-${VV}.tar.xz" 9 | R2PM_DESC "Vala compiler from git" 10 | 11 | R2PM_INSTALL() { 12 | # valac --help > /dev/null 2>&1 && exit 0 13 | ./configure --prefix="${R2PM_PREFIX}" 14 | ${MAKE} -j4 15 | ${MAKE} install 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | ${MAKE} uninstall 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/pcap: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "PCAP packet capture file support for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/bin/p || exit 1 9 | ${MAKE} clean 10 | ${MAKE} bin_pcap.${R2_LIBEXT} || exit 1 11 | cp -f bin_pcap.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | echo "cp -f bin_pcap.${R2_LIBEXT} ${R2PM_PLUGDIR}" 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PLUGDIR}"/*pcap* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/r2frida-objection: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2frida" 4 | R2PM_DESC "Use objection Frida scripts from r2frida" 5 | 6 | R2PM_DOC="run the :objection command for more details" 7 | 8 | R2PM_INSTALL() { 9 | cd plugins/objection || R2PM_FAIL "nodir" 10 | ${MAKE} || R2PM_FAIL "make" 11 | if [ "${GLOBAL}" = 1 ]; then 12 | ${R2PM_SUDO} ${MAKE} install 13 | else 14 | ${MAKE} user-install 15 | fi 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | ${MAKE} user-uninstall || exit 1 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/koboldcpp: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/LostRuins/koboldcpp" 4 | R2PM_DESC "Language model server" 5 | 6 | R2PM_INSTALL() { 7 | mkdir b 8 | (cd b && cmake .. && make -j && cp -f koboldcpp_default.dylib ../koboldcpp_default.so ) 9 | echo "#!/bin/sh" > "${R2PM_BINDIR}/koboldcpp" 10 | echo "cd ${PWD}; " 'python3 koboldcpp.py --noblas $@' >> "${R2PM_BINDIR}/koboldcpp" 11 | chmod +x "${R2PM_BINDIR}/koboldcpp" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f ${R2PM_BINDIR}/koboldcpp 16 | } 17 | 18 | R2PM_END 19 | 20 | -------------------------------------------------------------------------------- /db/muon: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | # R2PM_GIT "https://git.sr.ht/~lattis/muon" 4 | R2PM_GIT "https://github.com/annacrombie/muon" 5 | R2PM_DESC "Pure C reimplementation of Meson" 6 | R2PM_DEPS samurai 7 | 8 | R2PM_INSTALL() { 9 | ./bootstrap.sh build 10 | cp -f build/muon-bootstrap m 11 | ./m setup build 12 | samu -C build || exit 1 13 | mkdir -p "${R2PM_BINDIR}" || exit 1 14 | ${R2PM_SUDO} cp -f build/muon "${R2PM_BINDIR}/muon" 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | ${R2PM_SUDO} rm -f "${R2PM_BINDIR}/muon" 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/r2api-lua: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native Lua API bindings for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" --enable=lua || exit 1 8 | ${R2PM_SUDO} ${MAKE} install-vapi DESTDIR="${R2PM_DESTDIR}" || exit 1 9 | cd lua 10 | ${MAKE} clean 11 | ${MAKE} || exit 1 12 | ${R2PM_SUDO} ${MAKE} install DESTDIR="${R2PM_DESTDIR}" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | cd lua 17 | ${R2PM_SUDO uninstall 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/r2renef: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/ahmeth4n/r2renef" 4 | R2PM_DESC "[io] Renef IO plugin for radare2 - Dynamic Android Instrumentation" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean || true 8 | ${MAKE} || R2PM_FAIL "make" 9 | if [ "${GLOBAL}" = 1 ]; then 10 | ${SUDO} ${MAKE} install 11 | else 12 | ${MAKE} user-install 13 | fi 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | if [ "${GLOBAL}" = 1 ]; then 18 | ${SUDO} ${MAKE} uninstall 19 | else 20 | ${MAKE} user-uninstall 21 | fi 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/armthumb: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Tiny ARM Thumb disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p 9 | ${MAKE} clean 10 | ${MAKE} asm_armthumb.${R2_LIBEXT} || exit 1 11 | cp -f asm_armthumb.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | echo "cp -f asm_armthumb.${R2_LIBEXT} ${R2PM_PLUGDIR}" 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PLUGDIR}/asm_armthumb".* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/capstone-v4: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/capstone-engine/capstone --branch v4" 4 | R2PM_DESC "Capstone disassembler library v4" 5 | 6 | R2PM_INSTALL() { 7 | git pull ; git checkout v4 ; git pull 8 | ${MAKE} PREFIX="${R2PM_PREFIX}" CAPSTONE_SHARED=no 9 | ${MAKE} install PREFIX="${R2PM_PREFIX}" CAPSTONE_SHARED=no 10 | rm -f ${R2PM_PREFIX}/lib/libcapstone*.so 11 | rm -f ${R2PM_PREFIX}/lib/libcapstone*.dylib 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/dlang: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "D language symbol demangler plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ldc2 --version || R2PM_FAIL "You need to install ldc2" 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | cd libr/bin/p || exit 1 10 | ${MAKE} || R2PM_FAIL "You probably need to install phobos2 D library" 11 | cp -f bin_dlang.${LIBEXT} "${R2PM_PLUGDIR}" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}"/bin_dlang.* 16 | } 17 | 18 | R2PM_END 19 | -------------------------------------------------------------------------------- /db/mc6809: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Motorola MC6809 disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p 9 | ${MAKE} clean 10 | ls 11 | ${MAKE} asm_mc6809.${R2_LIBEXT} || exit 1 12 | cp -f asm_mc6809.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 13 | echo "cp -f asm_mc6809.${R2_LIBEXT} ${R2PM_PLUGDIR}" 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | rm -f "${R2PM_PLUGDIR}/asm_mc6809".* 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/z80-nc: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Z80 assembler and disassembler (non-GPL) for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p 9 | ${MAKE} clean 10 | ${MAKE} asm_z80_nc.${R2_LIBEXT} || exit 1 11 | cp -f asm_z80_nc.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 12 | echo "cp -f asm_z80_nc.${R2_LIBEXT} ${R2PM_PLUGDIR}" 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_PLUGDIR}/asm_z80_nc."* 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/acr: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/acr" 4 | R2PM_DESC "ACR autoconf replacement" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | ${MAKE} PREFIX="${R2PM_PREFIX}" || exit 1 10 | if [ "${GLOBAL}" = 1 ]; then 11 | ${SUDO} ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 12 | else 13 | ${MAKE} install PREFIX="${R2PM_PREFIX}" || exit 1 14 | fi 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/baleful: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Baleful VM disassembler and analyzer for radare2" 5 | 6 | R2PM_INSTALL() { 7 | # export PKG_CONFIG_PATH="${R2PM_PREFIX}/lib/pkgconfig" 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | cd baleful || exit 1 10 | ${MAKE} clean 11 | ${MAKE} || exit 1 12 | ${MAKE} install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | cd baleful 17 | ${MAKE} uninstall R2PM_PLUGDIR="${R2PM_PLUGDIR}" 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/msil: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "MSIL disassembler for radare2 (work in progress)" 5 | 6 | R2PM_INSTALL() { 7 | #export PKG_CONFIG_PATH=/usr/lib/pkgconfig 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | cd libr/asm || exit 1 10 | ${MAKE} clean 11 | ${MAKE} msil || exit 1 12 | cp -f p/asm_msil.${LIBEXT} "${R2PM_PLUGDIR}" || exit 1 13 | echo "cp -f p/asm_msil.${LIBEXT} ${R2PM_PLUGDIR}" 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | rm -f "${R2PM_PLUGDIR}"/*msil* 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /lint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "## Broken packages using global variables" 4 | git grep '^[A-Z]*=' db |grep -v :R2PM |cut -d : -f1|sort -u 5 | 6 | echo "## Wrongly indented packages (use tabs not spaces!)" 7 | git grep '^ ' db |cut -d : -f 1 |sort -u 8 | 9 | echo "## Packages without R2PM_END" 10 | for a in db/* ; do git grep R2PM_END $a > /dev/null || echo $a ; done 11 | 12 | echo "## Packages supported on Windows" 13 | git grep R2PM_INSTALL_WINDOWS |cut -d : -f1|sort -u 14 | 15 | echo "## Packages with XXX or TODO comments" 16 | git grep -e TODO -e XXX db 17 | -------------------------------------------------------------------------------- /db/atombios: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "AtomBIOS disassembler and analyzer for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr || exit 1 9 | ${MAKE} clean || exit 1 10 | ${MAKE} atombios R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 11 | ${MAKE} atombios-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | cd libr || exit 1 16 | ${MAKE} atombios-uninstall R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/groovy: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Groovy programming language" 4 | R2PM_TGZ https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.7.zip groovy-2.4.7 5 | 6 | R2PM_INSTALL() { 7 | GROOVY_BINS="groovy groovyc groovysh groovydoc grape" 8 | for a in ${GROOVY_BINS} ; do 9 | ln -fs "$PWD/bin/$a" "${R2PM_BINDIR}/$a" 10 | echo ln $a 11 | done 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | GROOVY_BINS="groovy groovyc groovysh groovydoc grape" 16 | for a in ${GROOVY_BINS} ; do 17 | rm -f "${R2PM_BINDIR}"/$a 18 | echo rm $a 19 | done 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/vasm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ "http://sun.hasenbraten.de/vasm/release/vasm.tar.gz" 4 | R2PM_DESC "Portable and retargetable assembler" 5 | 6 | R2PM_INSTALL() { 7 | [ -d vasm ] && cd vasm 8 | CPUS="arm 6502 6800 6809 c16x jagrisc m68k pdp11 ppc qnice tr3200 vidcore x86 z80" 9 | for CPU in ${CPUS} ; do 10 | echo "Building for $CPU..." 11 | make CPU=${CPU} SYNTAX=std > /dev/null 2>&1 12 | cp -f "vasm${CPU}_std" "${R2PM_PREFIX}/bin/vasm${CPU}_std" 13 | done 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | rm -f "${R2PM_PREFIX}/bin/vasmarm_std" 18 | } 19 | 20 | R2PM_END 21 | -------------------------------------------------------------------------------- /db/capstone-v5: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/capstone-engine/capstone --branch v5" 4 | R2PM_DESC "Capstone disassembler library v5" 5 | 6 | R2PM_INSTALL() { 7 | git reset --hard 8 | git pull ; git checkout v5 ; git pull 9 | ${MAKE} PREFIX="${R2PM_PREFIX}" CAPSTONE_SHARED=no || exit 1 10 | ${MAKE} install PREFIX="${R2PM_PREFIX}" CAPSTONE_SHARED=no || exit 1 11 | rm -f ${R2PM_PREFIX}/lib/libcapstone*.so 12 | rm -f ${R2PM_PREFIX}/lib/libcapstone*.dylib 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 17 | } 18 | 19 | R2PM_END 20 | -------------------------------------------------------------------------------- /db/chita: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/jpenalbae/chita" 4 | R2PM_DESC "Exploiting helper tool" 5 | 6 | R2PM_INSTALL() { 7 | node --version || exit 1 8 | npm install || exit 1 9 | mkdir -p "${R2PM_BINDIR}" || exit 1 10 | echo '#!/bin/sh' > "${R2PM_BINDIR}/chita" || exit 1 11 | echo "exec node '`pwd`'"'/chita.js $*' >> "${R2PM_BINDIR}/chita" || exit 1 12 | chmod +x "${R2PM_BINDIR}"/chita || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | export BINDIR="${R2PM_BINDIR}" 17 | rm -f "${BINDIR}"/chita 18 | rm -rf "${R2PM_GITDIR}"/chita 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/evm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Ethereum VM disassembler, analyzer, IO and debugger plugins for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr 9 | ${MAKE} clean 10 | ${MAKE} evm || exit 1 11 | ${MAKE} evm-install R2PM_PLUGDIR="${R2PM_PLUGDIR}" 12 | } 13 | 14 | R2PM_UNINSTALL() { 15 | rm -f "${R2PM_PLUGDIR}/asm_evm."* 16 | rm -f "${R2PM_PLUGDIR}/anal_evm."* 17 | rm -f "${R2PM_PLUGDIR}/io_evm."* 18 | rm -f "${R2PM_PLUGDIR}/debug_evm."* 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/java2dex: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Java to DEX converter" 4 | 5 | R2PM_INSTALL() { 6 | mkdir -p "${R2PM_BINDIR}" 7 | S="$" 8 | cat > ${R2PM_BINDIR}/java2dex << EOF 9 | #!/bin/sh 10 | echo FILES="${S}*" 11 | JAR="${S}(echo "${S}1" | sed -e 's,\.java,.jar,g')" 12 | CLS="${S}(echo "${S}*" | sed -e 's,\.java,.class,g')" 13 | javac -target 1.6 -source 1.6 ${S}* || exit 1 14 | echo ${S}CLS 15 | jar -cvf ${S}JAR ${S}CLS || exit 1 16 | exec dx --dex --output=classes.dex ${S}{JAR} 17 | EOF 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | rm "${R2PM_BINDIR}"/java2dex 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2pipe-cs: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-r2pipe" 4 | R2PM_DESC "r2pipe API for C# and .NET" 5 | 6 | R2PM_INSTALL() { 7 | cd dotnet 8 | if [ "${GLOBAL}" = 1 ]; then 9 | echo "Cannot install global dll yet" 10 | exit 1 11 | else 12 | ${MAKE} -j2 || exit 1 13 | cp r2pipe.dll "${WRKDIR}" || exit 1 14 | echo "${WRKDIR}/r2pipe.dll" 15 | fi 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | if [ "${GLOBAL}" = 1 ]; then 20 | echo "Cannot uninstall global dll yet" 21 | exit 1 22 | else 23 | rm -f r2pipe.dll 24 | fi 25 | } 26 | 27 | R2PM_END 28 | -------------------------------------------------------------------------------- /db/axml2xml: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "AXML to XML converter" 4 | 5 | R2PM_INSTALL() { 6 | export SOURCE="https://raw.githubusercontent.com/trufae/axml2xml.rb/0de60154032341a9a2df3d81dafd0251e0226bbd/axml2xml.rb" 7 | export B="${R2PM_BINDIR}"/axml2xml 8 | 9 | python -c "import androguard" 2>/dev/null 10 | if [ $? != 0 ]; then 11 | echo "Please install androguard" 12 | exit 1 13 | fi 14 | mkdir -p "${R2PM_BINDIR}" 15 | rm -f "${B}" 16 | wget -O "${B}" -c "${SOURCE}" 17 | chmod +x "${B}" 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | sudo rm -f "${B}" 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # R2PM 2 | 3 | This repository is fetched by `r2pm -U` and provides the package database. 4 | 5 | These packages are installed in user's home and can be plugins/scripts 6 | for radare2 or even utilities/programs related to r2. 7 | 8 | See https://github.com/radareorg/radare2 for r2pm 9 | 10 | ## How to use 11 | 12 | ```sh 13 | $ r2pm -U 14 | $ r2pm -ci r2frida 15 | ``` 16 | 17 | ## Testing new packages 18 | 19 | ```sh 20 | export R2PM_DBDIR="$PWD/db" 21 | # export R2PM_GITDIR="/path/to/the/root/folder/of/the/local/repository" 22 | # export R2PM_USRDIR="/path/to/usr/dir" 23 | ``` 24 | -------------------------------------------------------------------------------- /db/r2snow: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Snowman decompiler integration with radare2" 5 | 6 | R2PM_INSTALL() { 7 | cd r2snowman || R2PM_FAIL "Cd" 8 | ${MAKE} || R2PM_FAIL "Build failed. You probably need 'brew install cartr/qt4/qt' and 'brew install boost' or 'sudo apt-get install libboost-dev libqt4-dev'" 9 | ${MAKE} install PREFIX=${R2PM_PREFIX} || R2PM_FAIL "Install" 10 | } 11 | 12 | R2PM_UNINSTALL() { 13 | cd r2snowman || R2PM_FAIL "Cd" 14 | ${MAKE} uninstall PREFIX=${R2PM_PREFIX} || R2PM_FAIL "UnInstall" 15 | } 16 | 17 | R2PM_END 18 | -------------------------------------------------------------------------------- /db/dwarf-parser: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "DWARF parser library" 5 | 6 | R2PM_INSTALL() { 7 | if ! $(pkg-config --exists libdwarf); then 8 | if ! $(r2pm -l libdwarf); then 9 | echo "Running: r2pm -i libdwarf" 10 | r2pm -i libdwarf 11 | fi 12 | fi 13 | 14 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 15 | ${MAKE} -C dwarf || exit 1 16 | ${MAKE} -C dwarf install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | rm ${R2PM_PLUGDIR}/dparser* 21 | ${MAKE} -C dwarf clean 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r4ge: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/gast04/r4ge" 4 | R2PM_DESC "Another r2-angr plugin" 5 | 6 | R2PM_INSTALL() { 7 | pip install -r requirements.txt 8 | S="$" 9 | echo << EOF > ${R2PM_BINDIR}/r4ge 10 | #!/bin/sh 11 | R4GEPATH=$(pwd) 12 | [ -z "${S}PYTHON" ] && PYTHON=python 13 | if [ -z "${S}1" ]; then 14 | echo "Usage: r4ge [r4ge-bin] [args]" 15 | cd ${S}{R4GEPATH}/src && ls *.py 16 | exit 1 17 | fi 18 | exec ${S}{PYTHON} $(pwd)/$1.py $* 19 | EOF 20 | chmod +x ${R2PM_BINDIR}/r4ge 21 | } 22 | 23 | R2PM_UNINSTALL() { 24 | rm -f "${R2PM_BINDIR}/"r4ge 25 | } 26 | 27 | R2PM_END 28 | -------------------------------------------------------------------------------- /db/blessr2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Bless-based TUI for radare2" 5 | 6 | R2PM_INSTALL() { 7 | BINDIR="${R2PM_PLUGDIR}/../bin" 8 | cd blessr2 9 | node --version || exit 1 10 | npm install || exit 1 11 | mkdir -p "${BINDIR}" 12 | echo '#!/bin/sh' > "${BINDIR}/blessr2" 13 | echo "exec node '`pwd`'"'/index.js $*' >> "${BINDIR}/blessr2" 14 | chmod +x "${BINDIR}"/blessr2 15 | echo "Include ${BINDIR} in your PATH" 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | BINDIR="${R2PM_PLUGDIR}/../bin" 20 | rm -f "${BINDIR}"/blessr2 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/r2yara: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2yara" 4 | R2PM_DESC "YARA plugin for radare2" 5 | R2PM_DEPS yara 6 | 7 | R2PM_INSTALL() { 8 | ./configure --prefix="${R2PM_PREFIX}" || R2PM_FAIL "Configure" 9 | ${MAKE} || R2PM_FAIL "Build" 10 | if [ "${R2PM_GLOBAL}" = 1 ]; then 11 | ${SUDO} ${MAKE} install || R2PM_FAIL "Install" 12 | else 13 | ${MAKE} user-install || R2PM_FAIL "Install" 14 | fi 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | if [ "${R2PM_GLOBAL}" = 1 ]; then 19 | ${SUDO} ${MAKE} uninstall 20 | else 21 | ${MAKE} user-uninstall 22 | fi 23 | } 24 | 25 | R2PM_END 26 | -------------------------------------------------------------------------------- /db/r2pipe-vala: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-r2pipe" 4 | R2PM_DESC "r2pipe API for Vala and C-Glib" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd vala || exit 1 9 | if [ "${GLOBAL}" = 1 ]; then 10 | ${MAKE} clean 11 | ${MAKE} || exit 1 12 | ${MAKE} install || exit 1 13 | else 14 | echo "Cannot install in home yet" 15 | exit 1 16 | fi 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | if [ "${GLOBAL}" = 1 ]; then 21 | ${MAKE} uninstall 22 | else 23 | echo "Cannot uninstall from home yet" 24 | exit 1 25 | fi 26 | } 27 | 28 | R2PM_END 29 | -------------------------------------------------------------------------------- /db/keystone: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Keystone assembler plugins for radare2" 5 | R2PM_DEPS keystone-lib 6 | 7 | R2PM_INSTALL() { 8 | # export PKG_CONFIG_PATH="${R2PM_PREFIX}/lib/pkgconfig" 9 | cd keystone || exit 1 10 | export LDFLAGS="${LDFLAGS} -L/usr/local/lib" 11 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 12 | ${MAKE} clean 13 | ${MAKE} || exit 1 14 | ${MAKE} install R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | cd keystone || exit 1 19 | ${MAKE} uninstall R2PM_PLUGDIR="${R2PM_PLUGDIR}" 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/sdb: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/sdb" 4 | R2PM_DESC "Simple string database command-line tool and library" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} clean 8 | ${MAKE} HAVE_VALA= PREFIX="${R2PM_PREFIX}" || exit 1 9 | if [ "${GLOBAL}" = 1 ]; then 10 | ${SUDO} ${MAKE} install HAVE_VALA= PREFIX="${R2PM_PREFIX}" || exit 1 11 | else 12 | ${MAKE} install HAVE_VALA= PREFIX="${R2PM_PREFIX}" || exit 1 13 | fi 14 | rm -f ${R2PM_PREFIX}/lib/libsdb*.so* 15 | rm -f ${R2PM_PREFIX}/lib/libsdb*.dylib* 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/tcc: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "http://repo.or.cz/tinycc" 4 | R2PM_DESC "TinyCC compiler" 5 | 6 | # if installation fails, just strace it, probably this will fix: 7 | # cp -f /usr/lib/crt* /usr/lib64// 8 | 9 | R2PM_INSTALL() { 10 | p="${R2PM_PREFIX}" 11 | ${MAKE} clean 12 | ./configure --prefix=$p --sysroot=$p/lib --libdir=$p/lib \ 13 | --tccdir=$p/lib/tcc --docdir=$p/share/doc/tcc || exit 1 14 | ${MAKE} PREFIX="${R2PM_PREFIX}" CONFIG_SYSROOT="$p/lib" || exit 1 15 | ${SUDO} ${MAKE} install PREFIX="$p" || exit 1 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | ${SUDO} ${MAKE} uninstall PREFIX="${R2PM_PREFIX}" 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/rlang-python: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-rlang" 4 | R2PM_DESC "Python scripting plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | [ -z python-config ] && \ 8 | echo "python-config binary for python3 not found," \ 9 | "please specify via PYTHON_CONFIG environment variable" && exit 1 10 | ./configure --prefix=${R2PM_PREFIX} 11 | cd python 12 | ${MAKE} clean || exit 1 13 | ${MAKE} || exit 1 14 | ${R2PM_SUDO} ${MAKE} install R2_PLUGIN_PATH="${R2PM_PLUGDIR}" R2PM_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 15 | } 16 | 17 | R2PM_UNINSTALL() { 18 | ${R2PM_SUDO} ${MAKE} -C python uninstall 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/mlc-llm: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/mlc-ai/mlc-llm 4 | R2PM_DESC "Universal LLM deployment engine with ML compilation" 5 | 6 | R2PM_NEEDS "gcc make cmake" 7 | 8 | R2PM_INSTALL() { 9 | echo 10 | echo "XXX: the python module installation is not working well as usual" 11 | echo 12 | sleep 4 13 | git submodule update --init --recursive 14 | mkdir build 15 | cd build 16 | # python3 cmake/gen_cmake_config.py 17 | cmake .. 18 | ${MAKE} -j4 19 | ${R2PM_SUDO} ${MAKE} install 20 | pip3 install -e ../python --prefix=${R2PM_PREFIX} 21 | } 22 | 23 | R2PM_UNINSTALL() { 24 | ${R2PM_SUDO} ${MAKE} uninstall 25 | } 26 | 27 | R2PM_END 28 | 29 | -------------------------------------------------------------------------------- /db/signapk: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "APK signing tool" 4 | 5 | R2PM_GIT https://github.com/techexpertize/SignApk 6 | 7 | R2PM_INSTALL() { 8 | mkdir -p "${R2PM_BINDIR}" 9 | B="${R2PM_BINDIR}/signapk" 10 | echo '#!/bin/sh' > $B 11 | echo "java -jar \"${R2PM_USRDIR}/git/SignApk/signapk.jar\" $@" >> $B 12 | chmod +x $B 13 | # 14 | B="${R2PM_BINDIR}/signapk2" 15 | echo '#!/bin/sh' > $B 16 | echo "java -jar \"${R2PM_USRDIR}/git/SignApk/signapk.jar\" \"$PWD/certificate.pem\" \"$PWD/key.pk8\" "'$@' >> $B 17 | chmod +x $B 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | rm -f "${R2PM_BINDIR}"/signapk 22 | rm -f "${R2PM_BINDIR}"/signapk2 23 | } 24 | 25 | R2PM_END 26 | -------------------------------------------------------------------------------- /db/ggpack: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/mrmacete/r2-ggpack" 4 | R2PM_DESC "Thimbleweed Park ggpack data file reader/editor for radare2" 5 | 6 | R2PM_INSTALL() { 7 | mkdir -p "${R2PM_ETCD}" || exit 1 8 | ${MAKE} clean 9 | ${MAKE} || exit 1 10 | cp *.${LIBEXT} "${R2PM_PLUGDIR}" || exit 1 11 | echo '$ggimport=#!pipe python '"'$(pwd)'"'/ggimport.py' > "${R2PM_ETCD}/ggimport" || exit 1 12 | echo '$ggexport=#!pipe python '"'$(pwd)'"'/ggexport.py' > "${R2PM_ETCD}/ggexport" || exit 1 13 | } 14 | 15 | R2PM_UNINSTALL() { 16 | rm -f "${R2PM_ETCD}"/ggimport 17 | rm -f "${R2PM_ETCD}"/ggexport 18 | rm -f ${R2PM_PLUGDIR}/*ggpack* 19 | } 20 | 21 | R2PM_END 22 | -------------------------------------------------------------------------------- /db/poke: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_TGZ "https://ftp.gnu.org/gnu/poke/poke-4.3.tar.gz" 4 | R2PM_DIR poke-4.3 5 | R2PM_DESC "GNU Poke tool and library for r2poke" 6 | 7 | 8 | R2PM_INSTALL() { 9 | echo "Ubuntu: Requires libgc-dev and libreadline-dev" 10 | export CFLAGS="$(pkg-config --cflags readline)" 11 | export LDFLAGS="$(pkg-config --libs readline)" 12 | echo "macOS: Requires GNU readline, from brew its here" 13 | export PKG_CONFIG_PATH="/opt/homebrew/opt/readline/lib/pkgconfig" 14 | sleep 1 15 | ./configure --prefix="${R2PM_PREFIX}" 16 | ${MAKE} -j4 17 | ${MAKE} install 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | ${MAKE} uninstall 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/unicorn: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Unicorn emulator plugin for radare2" 5 | R2PM_DEPS unicorn-lib 6 | 7 | R2PM_INSTALL() { 8 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 9 | ${MAKE} -C unicorn clean 10 | ${MAKE} -C unicorn || exit 1 11 | if [ "${GLOBAL}" = 1 ]; then 12 | ${MAKE} unicorn-install || exit 1 13 | else 14 | ${MAKE} unicorn-install THEDIR=${R2PM_PLUGDIR} || exit 1 15 | fi 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | if [ "${GLOBAL}" = 1 ]; then 20 | ${MAKE} unicorn-uninstall || exit 1 21 | else 22 | ${MAKE} unicorn-uninstall THEDIR=${R2PM_PLUGDIR} || exit 1 23 | fi 24 | } 25 | 26 | R2PM_END 27 | -------------------------------------------------------------------------------- /db/swf: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "SWF/Flash disassembler for radare2" 5 | 6 | R2PM_INSTALL() { 7 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 8 | cd libr/asm/p 9 | ${MAKE} clean 10 | ${MAKE} asm_swf.${R2_LIBEXT} || exit 1 11 | mkdir -p "${R2PM_PLUGDIR}" || exit 1 12 | cp -f asm_swf.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 13 | cd ../../bin/p || exit 1 14 | ${MAKE} bin_swf.${R2_LIBEXT} || exit 1 15 | echo cp -f bin_swf.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 16 | cp -f bin_swf.${R2_LIBEXT} "${R2PM_PLUGDIR}" || exit 1 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | rm -f "${R2PM_PLUGDIR}"/*swf* 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/dex2jar: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "DEX to JAR converter" 4 | 5 | R2PM_INSTALL() { 6 | cd "${R2PM_USRDIR}/git" 7 | wget -c https://github.com/pxb1988/dex2jar/files/1867564/dex-tools-2.1-SNAPSHOT.zip 8 | unzip dex-tools-2.1-SNAPSHOT.zip || exit 1 9 | mv dex-tools-2.1-SNAPSHOT dex2jar-2.1-SNAPSHOT 10 | cd dex2jar-2.1-SNAPSHOT || exit 1 11 | mkdir -p "${R2PM_BINDIR}" 12 | ln -fs "$PWD/d2j-dex2jar.sh" "${R2PM_BINDIR}/dex2jar" || exit 1 13 | echo ln -fs "$PWD/d2j-dex2jar.sh" "${R2PM_BINDIR}/dex2jar" 14 | } 15 | 16 | R2PM_UNINSTALL() { 17 | rm "${R2PM_BINDIR}"/dex2jar 18 | rm -rf "${R2PM_USRDIR}/git/dex2jar-2.1-SNAPSHOT" 19 | rm -rf "${R2PM_USRDIR}/git/dex-tools*" 20 | } 21 | 22 | R2PM_END 23 | -------------------------------------------------------------------------------- /db/r2api-python-swig: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-bindings" 4 | R2PM_DESC "Native Python API bindings for radare2" 5 | 6 | R2PM_INSTALL() { 7 | [ -z "${PYTHON}" ] && PYTHON=python 8 | R2PM_DESTDIR=${R2PM_PREFIX} 9 | ./configure --prefix="${PREFIX}" --enable=python || exit 1 10 | ${R2PM_SUDO} ${MAKE} install-vapi DESTDIR="${R2PM_DESTDIR}" || exit 1 11 | cd python || exit 1 12 | ${MAKE} clean 13 | ${MAKE} PYTHON="${PYTHON}" 14 | ${R2PM_SUDO} ${MAKE} install PYTHON="${PYTHON}" \ 15 | PYTHON_VERSION="${PYTHON_VERSION}" DESTDIR="${R2PM_DESTDIR}" 16 | } 17 | 18 | R2PM_UNINSTALL() { 19 | cd python 20 | ${R2PM_SUDO} ${MAKE} uninstall 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/r2docker-amd64: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian amd64" 5 | 6 | R2PM_INSTALL() { 7 | cd dist/docker || return 1 8 | docker build --platform linux/amd64 -t r2docker-s390x . 9 | echo 10 | echo '$ docker run -ti r2docker' 11 | echo 12 | BIN="${R2PM_PREFIX}/bin/r2docker-amd64" 13 | echo '#!/bin/sh' > $BIN 14 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 15 | echo 'docker run --platform linux/amd64 -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 16 | chmod +x $BIN 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | docker rmi -f r2docker-amd64 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/r2docker-arm64: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian arm64" 5 | 6 | R2PM_INSTALL() { 7 | cd dist/docker || return 1 8 | docker build --platform linux/arm64 -t r2docker-s390x . 9 | echo 10 | echo '$ docker run -ti r2docker' 11 | echo 12 | BIN="${R2PM_PREFIX}/bin/r2docker-arm64" 13 | echo '#!/bin/sh' > $BIN 14 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 15 | echo 'docker run --platform linux/arm64 -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 16 | chmod +x $BIN 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | docker rmi -f r2docker-arm64 21 | } 22 | 23 | R2PM_END 24 | -------------------------------------------------------------------------------- /db/tcl: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | # R2PM_TGZ http://prdownloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz tcl 4 | R2PM_TGZ https://kumisystems.dl.sourceforge.net/project/tcl/Tcl/8.6.13/tcl8.6.13-src.tar.gz 5 | R2PM_DESC "TCL programming language" 6 | 7 | R2PM_NEEDS "gcc make" 8 | 9 | R2PM_INSTALL() { 10 | cd tcl8.6.13 11 | mkdir build 12 | cd build 13 | if [ "`uname`" = Darwin ]; then 14 | #(cd ../macosx ; autoreconf -vfi ; aclocal ; autoconf ; automake ) 15 | ../macosx/configure --prefix=${R2PM_PREFIX} 16 | else 17 | ../unix/configure --prefix=${R2PM_PREFIX} 18 | fi 19 | ${MAKE} 20 | ${R2PM_SUDO} ${MAKE} install 21 | } 22 | 23 | R2PM_UNINSTALL() { 24 | ${R2PM_SUDO} ${MAKE} -C build install 25 | } 26 | 27 | R2PM_END 28 | -------------------------------------------------------------------------------- /db/r2docker-386: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian i386" 5 | 6 | R2PM_INSTALL() { 7 | cd dist/docker || return 1 8 | uname | grep Linux || exit 1 9 | docker build --platform linux/386 -t r2docker-s390x . 10 | echo 11 | echo '$ docker run -ti r2docker' 12 | echo 13 | BIN="${R2PM_PREFIX}/bin/r2docker-386" 14 | echo '#!/bin/sh' > $BIN 15 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 16 | echo 'docker run --platform linux/386 -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 17 | chmod +x $BIN 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | docker rmi -f r2docker-386 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2docker-s390x: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian s390x" 5 | 6 | R2PM_INSTALL() { 7 | uname | grep Linux || exit 1 8 | cd dist/docker || return 1 9 | docker build --platform linux/s390x -t r2docker-s390x . 10 | echo 11 | echo '$ docker run -ti r2docker' 12 | echo 13 | BIN="${R2PM_PREFIX}/bin/r2docker-s390x" 14 | echo '#!/bin/sh' > $BIN 15 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 16 | echo 'docker run --platform linux/s390x -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 17 | chmod +x $BIN 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | docker rmi -f r2docker-s390x 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2docker-armv6: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian armv6" 5 | 6 | R2PM_INSTALL() { 7 | uname | grep Linux || exit 1 8 | cd dist/docker || return 1 9 | docker build --platform linux/arm/v6 -t r2docker-s390x . 10 | echo 11 | echo '$ docker run -ti r2docker' 12 | echo 13 | BIN="${R2PM_PREFIX}/bin/r2docker-armv6" 14 | echo '#!/bin/sh' > $BIN 15 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 16 | echo 'docker run --platform linux/arm/v6 -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 17 | chmod +x $BIN 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | docker rmi -f r2docker-armv6 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2docker-armv7: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian armv7" 5 | 6 | R2PM_INSTALL() { 7 | uname | grep Linux || exit 1 8 | cd dist/docker || return 1 9 | docker build --platform linux/arm/v7 -t r2docker-s390x . 10 | echo 11 | echo '$ docker run -ti r2docker' 12 | echo 13 | BIN="${R2PM_PREFIX}/bin/r2docker-armv7" 14 | echo '#!/bin/sh' > $BIN 15 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 16 | echo 'docker run --platform linux/arm/v7 -v /tmp:/tmp -ti r2docker-s390x' >> $BIN 17 | chmod +x $BIN 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | docker rmi -f r2docker-armv7 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2docker-ppc64le: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "Radare2 Docker image on Debian ppc64le" 5 | 6 | R2PM_INSTALL() { 7 | uname | grep Linux || exit 1 8 | cd dist/docker || return 1 9 | docker build --platform linux/ppc64le -t r2docker-ppc64le . 10 | echo 11 | echo '$ docker run -ti r2docker' 12 | echo 13 | BIN="${R2PM_PREFIX}/bin/r2docker-ppc64le" 14 | echo '#!/bin/sh' > $BIN 15 | echo 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --platform linux/s390x' >> $BIN 16 | echo 'docker run --platform linux/ppc64le -v /tmp:/tmp -ti r2docker-ppc64le' >> $BIN 17 | chmod +x $BIN 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | docker rmi -f r2docker-ppc64le 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2msdn: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/securisec/r2msdn" 4 | R2PM_DESC "Annotate PE/COFF Windows function arguments for radare2" 5 | 6 | R2PM_DOC=" 7 | usage: $r2msdn [-h] [-v] [-i INFO] 8 | 9 | optional arguments: 10 | -h, --help show this help message and exit 11 | -v Verbose mode 12 | -i INFO Show info about a function 13 | 14 | Invoke from inside r2 shell with $r2msdn 15 | " 16 | 17 | R2PM_INSTALL() { 18 | tar xf ${R2PM_GITDIR}/r2msdn/r2msdn.tar.gz -C ${R2PM_GITDIR}r2msdn 19 | echo '$'r2msdn="#"'!'"pipe python ${R2PM_GITDIR}/r2msdn/r2msdn.py" >> ~/.radare2rc || exit 1 20 | echo "\n[+] r2msdn has been installed" 21 | } 22 | 23 | R2PM_UNINSTALL() { 24 | rm -rf "${R2PM_GITDIR}"/r2msdn 25 | } 26 | 27 | R2PM_END 28 | -------------------------------------------------------------------------------- /db/tk: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | # R2PM_TGZ http://prdownloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz tcl 4 | R2PM_TGZ https://altushost-swe.dl.sourceforge.net/project/tcl/Tcl/8.6.13/tk8.6.13-src.tar.gz 5 | R2PM_DESC "TCL programming language" 6 | R2PM_DEPS tcl 7 | 8 | R2PM_NEEDS "gcc make" 9 | 10 | R2PM_INSTALL() { 11 | cd tk8.6.13 12 | mkdir build 13 | cd build 14 | if [ "`uname`" = Darwin ]; then 15 | #(cd ../macosx ; autoreconf -vfi ; aclocal ; autoconf ; automake ) 16 | ../macosx/configure --prefix=${R2PM_PREFIX} --enable-aqua=yes 17 | else 18 | ../unix/configure --prefix=${R2PM_PREFIX} 19 | fi 20 | ${MAKE} 21 | ${R2PM_SUDO} ${MAKE} install 22 | } 23 | 24 | R2PM_UNINSTALL() { 25 | ${R2PM_SUDO} ${MAKE} -C build install 26 | } 27 | 28 | R2PM_END 29 | -------------------------------------------------------------------------------- /db/www-p: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-webui" 4 | R2PM_DESC "Panel WebUI for radare2" 5 | 6 | MAKE_TARGET="release-panel" 7 | UI="p" 8 | 9 | R2PM_INSTALL() { 10 | ${MAKE} "${MAKE_TARGET}" || exit 1 11 | cd "dist/${UI}" 12 | WWWROOT="${R2PM_WWWROOT}" 13 | echo "WWWROOT IS ${WWWROOT}" 14 | mkdir -p ${WWWROOT} || exit 1 15 | if [ -n "${WWWROOT}" ]; then 16 | rm -rf "${WWWROOT}/${UI}" 17 | echo "Installing /${UI}..." 18 | ln -s "${PWD}" "${WWWROOT}/${UI}" 19 | else 20 | echo "Cannot find WWWROOT" 21 | exit 1 22 | fi 23 | } 24 | 25 | R2PM_UNINSTALL() { 26 | WWWROOT="${R2PM_WWWROOT}" 27 | if [ -n "${WWWROOT}" ]; then 28 | rm -rf "${WWWROOT}/${UI}" 29 | else 30 | echo "Cannot find WWWROOT" 31 | exit 1 32 | fi 33 | } 34 | 35 | R2PM_END 36 | -------------------------------------------------------------------------------- /db/www-t: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-webui" 4 | R2PM_DESC "Tiled WebUI for radare2" 5 | 6 | MAKE_TARGET="release-tiles" 7 | UI="t" 8 | 9 | R2PM_INSTALL() { 10 | ${MAKE} "${MAKE_TARGET}" || exit 1 11 | cd "dist/${UI}" || exit 1 12 | WWWROOT="${R2PM_WWWROOT}" 13 | echo "WWWROOT IS ${WWWROOT}" 14 | mkdir -p ${WWWROOT} || exit 1 15 | if [ -n "${WWWROOT}" ]; then 16 | rm -rf "${WWWROOT}/${UI}" 17 | echo "Installing /${UI}..." 18 | ln -s "${PWD}" "${WWWROOT}/${UI}" 19 | else 20 | echo "Cannot find WWWROOT" 21 | exit 1 22 | fi 23 | } 24 | 25 | R2PM_UNINSTALL() { 26 | WWWROOT="${R2PM_WWWROOT}" 27 | if [ -n "${WWWROOT}" ]; then 28 | rm -rf "${WWWROOT}/${UI}" 29 | else 30 | echo "Cannot find WWWROOT" 31 | exit 1 32 | fi 33 | } 34 | 35 | R2PM_END 36 | -------------------------------------------------------------------------------- /db/www-m: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-webui" 4 | R2PM_DESC "Material WebUI for radare2" 5 | 6 | MAKE_TARGET="release-material" 7 | UI="m" 8 | 9 | R2PM_INSTALL() { 10 | ${MAKE} "${MAKE_TARGET}" || exit 1 11 | cd "dist/${UI}" || exit 1 12 | WWWROOT="${R2PM_WWWROOT}" 13 | echo "WWWROOT IS ${WWWROOT}" 14 | mkdir -p ${WWWROOT} || exit 1 15 | if [ -n "${WWWROOT}" ]; then 16 | rm -rf "${WWWROOT}/${UI}" 17 | echo "Installing /${UI}..." 18 | ln -s "${PWD}" "${WWWROOT}/${UI}" 19 | else 20 | echo "Cannot find WWWROOT" 21 | exit 1 22 | fi 23 | } 24 | 25 | R2PM_UNINSTALL() { 26 | WWWROOT="${R2PM_WWWROOT}" 27 | if [ -n "${WWWROOT}" ]; then 28 | rm -rf "${WWWROOT}/${UI}" 29 | else 30 | echo "Cannot find WWWROOT" 31 | exit 1 32 | fi 33 | } 34 | 35 | R2PM_END 36 | -------------------------------------------------------------------------------- /db/kaitai-struct-compiler: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Kaitai Struct compiler command-line tool" 4 | R2PM_GIT https://github.com/kaitai-io/kaitai_struct kaitai-struct-compiler 5 | 6 | R2PM_INSTALL() { 7 | git submodule init 8 | git submodule update 9 | sbt clean new || exit 1 10 | ( 11 | cd tests && ./build-compiler 12 | ) 13 | mkdir -p ${R2PM_BINDIR} 14 | echo ln -fs ${PWD}/compiler/jvm/target/universal/stage/bin/kaitai-struct-compiler \ 15 | ${R2PM_BINDIR}/kaitai-struct-compiler || exit 1 16 | ln -fs ${PWD}/compiler/jvm/target/universal/stage/bin/kaitai-struct-compiler \ 17 | ${R2PM_BINDIR}/kaitai-struct-compiler || exit 1 18 | echo "kaitai-struct-compiler is now installed and available via r2pm -r" 19 | } 20 | 21 | R2PM_UNINSTALL() { 22 | rm -f ${R2PM_BINDIR}/kaitai-struct-compiler 23 | } 24 | 25 | R2PM_END 26 | -------------------------------------------------------------------------------- /db/ghidra: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Ghidra reverse engineering suite" 4 | 5 | R2PM_TGZ ${GHIDRA_URL} "ghidra_${GHIDRA_VERSION}" 6 | 7 | R2PM_INSTALL() { 8 | GHIDRA_VERSION=10.2.3 9 | GHIDRA_URL="https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${GHIDRA_VERSION}_build/ghidra_${GHIDRA_VERSION}_PUBLIC_20230208.zip" 10 | echo "Installing Ghidra" 11 | cd ghidra_${GHIDRA_VERSION}_PUBLIC 12 | ( ln -fs ghidra_${GHIDRA_VERSION} ../ghidra ) 13 | mkdir -p "${R2PM_BINDIR}" 14 | ln -fs "${PWD}/ghidraRun" "${R2PM_BINDIR}/ghidraRun" 15 | ln -fs "${PWD}/support/analyzeHeadless" "${R2PM_BINDIR}/analyzeHeadless" 16 | echo "Now you have ghidraRun and analyzeHeadless in the R2PM_PATH." 17 | } 18 | 19 | R2PM_UNINSTALL() { 20 | rm -f "${R2PM_BINDIR}"/ghidraRun 21 | rm -f "${R2PM_BINDIR}"/analyzeHeadless 22 | } 23 | 24 | R2PM_END 25 | -------------------------------------------------------------------------------- /db/r2retdec: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2retdec" 4 | R2PM_DESC "RetDec decompiler plugin for radare2" 5 | R2PM_NEEDS cmake 6 | 7 | R2PM_DOC="" 8 | 9 | R2PM_INSTALL() { 10 | mkdir -p build && cd build || exit 1 11 | if [ "`uname`" = Darwin ]; then 12 | cmake .. \ 13 | -DRADARE2_INSTALL_PLUGDIR="${R2PM_PLUGDIR}" \ 14 | -DBUILD_BUNDLED_RETDEC=ON \ 15 | -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/ \ 16 | -DRETDEC_INSTALL_PREFIX="${PWD}/install" 17 | else 18 | cmake .. \ 19 | -DRADARE2_INSTALL_PLUGDIR="${R2PM_PLUGDIR}" \ 20 | -DBUILD_BUNDLED_RETDEC=ON \ 21 | -DRETDEC_INSTALL_PREFIX="${PWD}/install" || exit 1 22 | fi 23 | ${MAKE} -j2 || exit 1 24 | ${MAKE} install || exit 1 25 | } 26 | 27 | R2PM_UNINSTALL() { 28 | cd build || exit 1 29 | cat install_manifest.txt | xargs rm -rv 30 | } 31 | 32 | R2PM_END 33 | -------------------------------------------------------------------------------- /db/www-enyo: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-webui" 4 | R2PM_DESC "Enyo WebUI for radare2" 5 | 6 | # TODO this is just a proposal, unused for now 7 | R2PM_GLOBALS() { 8 | MAKE_TARGET="release-enyo" 9 | UI="enyo" 10 | } 11 | 12 | R2PM_INSTALL() { 13 | ${MAKE} "${MAKE_TARGET}" || exit 1 14 | cd "dist/${UI}" || exit 1 15 | WWWROOT="${R2PM_WWWROOT}" 16 | echo "WWWROOT IS ${WWWROOT}" 17 | mkdir -p ${WWWROOT} || exit 1 18 | if [ -n "${WWWROOT}" ]; then 19 | rm -rf "${WWWROOT}/${UI}" 20 | echo "Installing /${UI}..." 21 | ln -s "${PWD}" "${WWWROOT}/${UI}" || exit 1 22 | else 23 | echo "Cannot find WWWROOT" 24 | exit 1 25 | fi 26 | } 27 | 28 | R2PM_UNINSTALL() { 29 | WWWROOT="${R2PM_WWWROOT}" 30 | if [ -n "${WWWROOT}" ]; then 31 | rm -rf "${WWWROOT}/${UI}" 32 | else 33 | echo "Cannot find WWWROOT" 34 | exit 1 35 | fi 36 | } 37 | 38 | R2PM_END 39 | -------------------------------------------------------------------------------- /db/r2ghidra: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2ghidra" 4 | R2PM_DESC "Ghidra disassembler, analysis and decompiler plugins for radare2" 5 | R2PM_DEPS r2ghidra-sleigh 6 | 7 | R2PM_DOC="" 8 | 9 | R2PM_INSTALL_WINDOWS() { 10 | cd dist/windows/r2pm 11 | install.bat 12 | } 13 | R2PM_UNINSTALL_WINDOWS() { 14 | cd dist/windows/r2pm 15 | uninstall.bat 16 | } 17 | 18 | R2PM_INSTALL() { 19 | rm -rf ghidra/ghidra/Ghidra 20 | rm -rf build # clean build 21 | ./preconfigure || exit 1 22 | ./configure --prefix=`r2 -H R2_PREFIX` || R2PM_FAIL "configure" 23 | ${MAKE} -C src -j1 || R2PM_FAIL "make" 24 | if [ "${GLOBAL}" = 1 ]; then 25 | ${SUDO} ${MAKE} -C src install 26 | else 27 | ${MAKE} -C src user-install 28 | fi 29 | } 30 | 31 | R2PM_UNINSTALL() { 32 | if [ "${GLOBAL}" = 1 ]; then 33 | ${SUDO} ${MAKE} -C src uninstall 34 | else 35 | ${MAKE} -C src user-uninstall 36 | fi 37 | } 38 | 39 | R2PM_END 40 | -------------------------------------------------------------------------------- /db/r2dec-duk: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT https://github.com/wargio/r2dec-js r2dec 4 | R2PM_DESC "Old r2dec decompiler using DukTape" 5 | 6 | R2PM_NEEDS "python3 gcc make" 7 | 8 | R2PM_INSTALL() { 9 | # checkout the last commit using duktape 10 | git reset --hard 6ba7ae561fd4083cc807ef2a4763c1a30a1341ba 11 | export CFLAGS='-DR2DEC_HOME="${R2PM_GITDIR}/r2dec"' 12 | ${MAKE} -C p USE_JSC=1 V= || exit 1 13 | if [ "${GLOBAL}" = 1 ]; then 14 | ${MAKE} -C p uninstall 15 | ${MAKE} -C p install V= USE_JSC=1 || exit 1 16 | else 17 | ${MAKE} -C p user-uninstall 18 | ${MAKE} -C p user-install V= USE_JSC=1 || exit 1 19 | fi 20 | } 21 | 22 | R2PM_UNINSTALL() { 23 | # checkout the last commit using duktape 24 | git reset --hard 6ba7ae561fd4083cc807ef2a4763c1a30a1341ba 25 | if [ "${GLOBAL}" = 1 ]; then 26 | ${MAKE} -C p uninstall || exit 1 27 | else 28 | ${MAKE} -C p user-uninstall || exit 1 29 | fi 30 | } 31 | 32 | R2PM_END 33 | -------------------------------------------------------------------------------- /db/r2wiki: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/securisec/r2wiki" 4 | R2PM_DESC "Internal wiki for radare2" 5 | 6 | R2PM_DOC=" 7 | usage: '$'wiki [-h] [-a] [-l] what_to_search_for 8 | 9 | positional arguments: 10 | what_to_search_for What to search for. Supports regex . Triple escape 11 | escapes. \\ 12 | 13 | optional arguments: 14 | -h, --help show this help message and exit 15 | -a Will match any of the words. 16 | -l Show the corresponding r2wiki link 17 | -u Update r2wiki with latest content 18 | 19 | Invoke from inside r2 shell with $wiki 20 | To update, use $wiki -u '' 21 | " 22 | 23 | R2PM_INSTALL() { 24 | pip install --user Pygments 25 | echo '$'wiki="#"'!'"pipe python ${R2PM_GITDIR}r2wiki/r2wiki.py" >> ~/.radare2rc || exit 1 26 | echo "\n[+] r2wiki has been installed" 27 | } 28 | 29 | R2PM_UNINSTALL() { 30 | rm -rf "${R2PM_GITDIR}"r2wiki 31 | } 32 | 33 | R2PM_END 34 | -------------------------------------------------------------------------------- /db/swig: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2" 4 | R2PM_DESC "SWIG compiler" 5 | R2PM_TGZ https://github.com/swig/swig/archive/rel-3.0.12.tar.gz swig-rel-3.0.12 6 | 7 | R2PM_INSTALL() { 8 | if [ "${GLOBAL}" = 1 ]; then 9 | if [ -x /opt/local/bin/port ]; then 10 | sudo port install i386-mingw32-gcc 11 | sudo port install swig 12 | sudo port install swig-python 13 | elif [ -x /usr/bin/pacman ]; then 14 | sudo pacman -S swig 15 | elif [ -x /usr/bin/dnf ]; then 16 | sudo dnf add swig 17 | elif [ -x /usr/bin/xbps ]; then 18 | sudo xbps-install -Syu swig 19 | elif [ -x /usr/bin/apt-get ]; then 20 | sudo apt-get install swig 21 | fi 22 | else 23 | sh autogen.sh || exit 1 24 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 25 | ${MAKE} -j${MAKE_JOBS} || exit 1 26 | ${MAKE} install || exit 1 27 | fi 28 | } 29 | 30 | R2PM_UNINSTALL() { 31 | echo "Sorry. This package cannot be uninstalled" 32 | exit 1 33 | } 34 | 35 | R2PM_END 36 | -------------------------------------------------------------------------------- /db/r2retdec-cli: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/securisec/r2retdec" 4 | R2PM_DESC "Use local open-source RetDec to decompile functions" 5 | 6 | R2PM_DOC=" 7 | usage: $r2retdec [-h] [-p] [-t FILE] 8 | 9 | r2retdec help 10 | 11 | Optional arguments: 12 | -h, --help Show this help message and exit. 13 | -t TMP Set temp file for decompiled code 14 | -p Print decompilation to stdout 15 | 16 | Invoke from inside r2 shell with $dec 17 | " 18 | 19 | R2PM_INSTALL() { 20 | cd ${R2PM_GITDIR}/r2retdec 21 | npm install || exit 1 22 | cd - 23 | echo "Usage: #!pipe r2retdec" 24 | echo " - Open the file: r2 -A /bin/ls" 25 | echo " - Type: #!pipe r2retdec" 26 | echo "Function must be analyzed to get be able to decompile it" 27 | ln -fs "${R2PM_GITDIR}/r2retdec/r2retdec.js" "${R2PM_BINDIR}/r2retdec" 28 | chmod +x "${R2PM_GITDIR}/r2retdec/r2retdec.js" 29 | if [ -x "${R2PM_GITDIR}/retdec/bin/retdec-decompiler.py" ]; then 30 | echo "${R2PM_GITDIR}/retdec/bin/retdec-decompiler.py" > ~/.r2retdec 31 | fi 32 | } 33 | 34 | R2PM_UNINSTALL() { 35 | #rm -rf "${R2PM_GITDIR}"/r2retdec 36 | rm -f "${R2PM_BINDIR}"/r2retdec 37 | } 38 | 39 | R2PM_END 40 | -------------------------------------------------------------------------------- /db/frida: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_DESC "Frida dynamic instrumentation framework and tools" 4 | 5 | R2PM_INSTALL() { 6 | S='$' 7 | cd "$R2PM_PREFIX" 8 | echo "Creating Python virtual environment..." 9 | python3 -m venv venv || exit 1 10 | . venv/bin/activate 11 | echo "Installing Frida and Frida-Tools..." 12 | pip3 install -U frida 13 | pip3 install -U frida-tools 14 | for a in frida frida-apk frida-compile frida-create frida-discover frida-itrace frida-join frida-ls frida-ls-devices frida-kill frida-ps frida-pull frida-push frida-rm frida-trace ; do 15 | echo "Wrapping $a" 16 | echo "#!/bin/sh" > "${R2PM_BINDIR}/$a" 17 | echo ". ${R2PM_PREFIX}/venv/bin/activate" >> "${R2PM_BINDIR}/$a" 18 | echo "${R2PM_PREFIX}/venv/bin/$a ${S}@" >> "${R2PM_BINDIR}/$a" 19 | chmod +x "${R2PM_BINDIR}/$a" 20 | done 21 | } 22 | 23 | R2PM_UNINSTALL() { 24 | cd "$R2PM_PREFIX" 25 | . venv/bin/activate 26 | pip3 uninstall frida-tools 27 | pip3 uninstall frida 28 | for a in frida frida-apk frida-compile frida-create frida-discover frida-itrace frida-join frida-ls frida-ls-devices frida-kill frida-ps frida-pull frida-push frida-rm frida-trace ; do 29 | rm -f "${R2PM_BINDIR}/$a" 30 | done 31 | } 32 | 33 | R2PM_END 34 | -------------------------------------------------------------------------------- /db/r2k-linux-unstable: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/leberus/r2k" 4 | R2PM_DESC "Unstable Linux kernel module for r2k" 5 | 6 | R2PM_INSTALL() { 7 | ${MAKE} || R2PM_FAIL "Build" 8 | #gzip -f r2kmod.ko || R2PM_FAIL "GZIP error" 9 | if [ "${GLOBAL}" = 1 ]; then 10 | #${MAKE} install || R2PM_FAIL "Install" 11 | sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Cannot create install dir" 12 | #sudo cp -f r2kmod.ko.gz /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Permission denied" 13 | sudo cp -f r2kmod.ko /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Permission denied" 14 | sudo depmod -a 15 | sudo modprobe r2kmod 16 | echo "You should now run:" 17 | echo 18 | echo '$ sudo modprobe r2kmod' 19 | echo 20 | echo "WARNING: This module allows ANY user to read/write physical memory" 21 | echo "WARNING: Dont use it if you dont know what you are doing" 22 | else 23 | sudo insmod r2kmod.ko || R2PM_FAIL "Only installable globally with -gi" 24 | fi 25 | } 26 | 27 | R2PM_UNINSTALL() { 28 | if [ "${GLOBAL}" = 1 ]; then 29 | sudo rm -f /lib/modules/$(uname -r)/kernel/drivers/misc/r2k*.ko* 30 | fi 31 | sudo rmmod r2kmod 32 | #${MAKE} uninstall 33 | } 34 | 35 | R2PM_END 36 | -------------------------------------------------------------------------------- /db/r2k-linux: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/radare2-extras" 4 | R2PM_DESC "Linux kernel module for r2k IO plugin" 5 | 6 | R2PM_DOC=" 7 | You should now be able to run: 8 | 9 | $ sudo modprobe r2kmod 10 | 11 | WARNING: This module allows ANY user to read/write physical memory 12 | WARNING: Dont use it if you dont know what you are doing 13 | " 14 | 15 | R2PM_INSTALL() { 16 | cd r2k/linux 17 | ${MAKE} || R2PM_FAIL "Build" 18 | #gzip -f r2kmod.ko || R2PM_FAIL "GZIP error" 19 | if [ "${GLOBAL}" = 1 ]; then 20 | #${MAKE} install || R2PM_FAIL "Install" 21 | sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Cannot create install dir" 22 | #sudo cp -f r2kmod.ko.gz /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Permission denied" 23 | sudo cp -f r2kmod.ko /lib/modules/$(uname -r)/kernel/drivers/misc/ || R2PM_FAIL "Permission denied" 24 | sudo depmod -a 25 | r2pm_doc r2k-linux 26 | else 27 | sudo insmod r2kmod.ko || R2PM_FAIL "Cannot install kernel module" 28 | fi 29 | } 30 | 31 | R2PM_UNINSTALL() { 32 | if [ "${GLOBAL}" = 1 ]; then 33 | sudo rm -f /lib/modules/$(uname -r)/kernel/drivers/misc/r2k*.ko* 34 | fi 35 | sudo rmmod r2kmod 36 | #${MAKE} uninstall 37 | } 38 | 39 | R2PM_END 40 | -------------------------------------------------------------------------------- /db/yara: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/VirusTotal/yara" 4 | R2PM_DESC "Install YARA command-line tool and library from git" 5 | 6 | # TODO: fix windows and global installations (r2pm -g keeps installing in the home) 7 | 8 | R2PM_INSTALL_WINDOWS() { 9 | powershell -command "Invoke-WebRequest 'https://github.com/VirusTotal/yara/releases/download/v4.5.4/yara-master-v4.5.4-win64.zip' -OutFile 'yara-w64.zip'" 10 | powershell -command "$destination = & r2pm -H R2PM_BINDIR;Copy-Item "yara-master-v4.5.4-win64/yara64.exe" $destination -Force " 11 | } 12 | 13 | R2PM_UNINSTALL_WINDOWS() { 14 | powershell -command "$bindir = & r2pm -H R2PM_BINDIR; $destination = Join-Path -Path $bindir -ChildPath "yara64.exe"; Remove-Item $destination -Force" 15 | } 16 | 17 | R2PM_INSTALL() { 18 | export CFLAGS="-fPIC" 19 | git fetch --tags 20 | git checkout v4.5.4 21 | chmod +x bootstrap.sh 22 | echo "Using PREFIX ${R2PM_PREFIX}" 23 | ./bootstrap.sh 24 | ./configure --disable-shared --enable-static \ 25 | --without-crypto --prefix="${R2PM_PREFIX}" || exit 1 26 | ${MAKE} -j8 || exit 1 27 | ${R2PM_SUDO} ${MAKE} install 28 | rm -f "${R2PM_PREFIX}/lib/"libyara*.dylib 29 | rm -f "${R2PM_PREFIX}/lib/"libyara*.so 30 | } 31 | 32 | R2PM_UNINSTALL() { 33 | ${R2PM_SUDO} ${MAKE} uninstall 34 | } 35 | 36 | R2PM_END 37 | -------------------------------------------------------------------------------- /db/r2frida-precompiled: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2frida" 4 | R2PM_DESC "r2frida IO plugin" 5 | 6 | R2PM_DOC=" 7 | r2frida is an IO plugin for r2 that talks with Frida. 8 | This allows to interact with local and remote processes. 9 | 10 | $ r2 frida:///bin/ls 11 | [0x00000000]> :i* 12 | e asm.arch=x86 13 | e asm.bits=64 14 | e asm.os=darwin 15 | 16 | You can also connect to Android/iOS gadgets or servers: 17 | 18 | $ r2 frida://{device-id}/{application-name|process-id} 19 | " 20 | 21 | # powershell -command "Invoke-WebRequest 'https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.6-w64.zip'" -OutFile 'r2frida-5.7.6-w64.zip' 22 | R2PM_INSTALL_WINDOWS() { 23 | python -m wget -o r2frida-5.7.8-w64.zip https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.8-w64.zip 24 | unzip r2frida-5.7.8-w64.zip 25 | copy io_frida.dll %R2_USER_PLUGINS% 26 | } 27 | 28 | R2PM_INSTALL() { 29 | unset CFLAGS 30 | unset LDFLAGS 31 | ./configure --with-precompiled-agent || R2PM_FAIL "Install fail" 32 | ${MAKE} || R2PM_FAIL "Build failed" 33 | ${MAKE} user-install R2_PLUGDIR="${R2PM_PLUGDIR}" || R2PM_FAIL "Install fail" 34 | } 35 | 36 | R2PM_UNINSTALL() { 37 | ${MAKE} user-uninstall R2_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 38 | } 39 | 40 | R2PM_UNINSTALL_WINDOWS() { 41 | del %R2_USER_PLUGINS%\io_frida.dll 42 | } 43 | 44 | R2PM_END 45 | -------------------------------------------------------------------------------- /db/r2frida-15: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2frida" 4 | R2PM_DESC "r2frida IO plugin" 5 | 6 | R2PM_DOC=" 7 | r2frida is an IO plugin for r2 that talks with Frida. 8 | This allows to interact with local and remote processes. 9 | 10 | $ r2 frida:///bin/ls 11 | [0x00000000]> :i* 12 | e asm.arch=x86 13 | e asm.bits=64 14 | e asm.os=darwin 15 | 16 | You can also connect to Android/iOS gadgets or servers: 17 | 18 | $ r2 frida://{device-id}/{application-name|process-id} 19 | " 20 | 21 | # powershell -command "Invoke-WebRequest 'https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.6-w64.zip'" -OutFile 'r2frida-5.7.6-w64.zip' 22 | R2PM_INSTALL_WINDOWS() { 23 | python -m wget -o r2frida-5.7.8-w64.zip https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.8-w64.zip 24 | unzip r2frida-5.7.8-w64.zip 25 | copy io_frida.dll %R2_USER_PLUGINS% 26 | } 27 | 28 | R2PM_INSTALL() { 29 | unset CFLAGS 30 | unset LDFLAGS 31 | echo "Building the native plugin and using the precompiled agent" 32 | ./configure --with-precompiled-agent 33 | ${MAKE} frida_version=15.2.2 || R2PM_FAIL "Build failed" 34 | ${MAKE} user-install R2_PLUGDIR="${R2PM_PLUGDIR}" || R2PM_FAIL "Install fail" 35 | } 36 | 37 | R2PM_UNINSTALL() { 38 | ${MAKE} user-uninstall R2_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 39 | } 40 | 41 | R2PM_UNINSTALL_WINDOWS() { 42 | del %R2_USER_PLUGINS%\io_frida.dll 43 | } 44 | 45 | R2PM_END 46 | -------------------------------------------------------------------------------- /db/r2frida: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/nowsecure/r2frida" 4 | R2PM_DESC "Use Frida from radare2 via r2frida:// URI" 5 | 6 | R2PM_DOC=" 7 | r2frida is an IO plugin for r2 that talks with Frida. 8 | This allows to interact with local and remote processes. 9 | 10 | $ r2 frida:///bin/ls 11 | [0x00000000]> :i* 12 | e asm.arch=x86 13 | e asm.bits=64 14 | e asm.os=darwin 15 | 16 | You can also connect to Android/iOS gadgets or servers: 17 | 18 | $ r2 frida://{device-id}/{application-name|process-id} 19 | " 20 | 21 | # powershell -command "Invoke-WebRequest 'https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.6-w64.zip'" -OutFile 'r2frida-5.7.6-w64.zip' 22 | R2PM_INSTALL_WINDOWS() { 23 | python -m wget -o r2frida-5.7.8-w64.zip https://github.com/nowsecure/r2frida/releases/download/v5.7.6/r2frida-5.7.8-w64.zip 24 | unzip r2frida-5.7.8-w64.zip 25 | copy io_frida.dll %R2_USER_PLUGINS% 26 | } 27 | 28 | R2PM_INSTALL() { 29 | unset CFLAGS 30 | unset LDFLAGS 31 | ./configure || R2PM_FAIL "Install fail" 32 | if [ -n "${FRIDA_VERSION}" ]; then 33 | ${MAKE} frida_version=${FRIDA_VERSION} || R2PM_FAIL "Build failed" 34 | else 35 | ${MAKE} || R2PM_FAIL "Build failed" 36 | fi 37 | if [ "$GLOBAL" = 1 ]; then 38 | ${R2PM_SUDO} ${MAKE} install || R2PM_FAIL "Install fail" 39 | else 40 | ${MAKE} user-install R2_PLUGDIR="${R2PM_PLUGDIR}" || R2PM_FAIL "Install fail" 41 | fi 42 | } 43 | 44 | R2PM_UNINSTALL() { 45 | ${MAKE} user-uninstall R2_PLUGDIR="${R2PM_PLUGDIR}" || exit 1 46 | } 47 | 48 | R2PM_UNINSTALL_WINDOWS() { 49 | del %R2_USER_PLUGINS%\io_frida.dll 50 | } 51 | 52 | R2PM_END 53 | -------------------------------------------------------------------------------- /db/goresym: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/hanemile/radare2-GoReSym" 4 | R2PM_DESC "Import symbols from GoReSym into radare2" 5 | 6 | R2PM_INSTALL() { 7 | if [ ! -d GoReSym ]; then 8 | git clone https://github.com/mandiant/GoReSym 9 | pushd GoReSym 10 | go build || exit 1 11 | popd 12 | fi 13 | 14 | # TODO: This script should be moved to the r2-goresym repo imho 15 | export GRS_DIR="${PWD}" 16 | export GRS_SRC="${GRS_DIR}/rename.py" 17 | export GRS_DST="${R2PM_PLUGDIR}/goresym.r2.js" 18 | export GRS_R2JS=`cat < goresym_out.txt"); 26 | r2.cmd("#!pipe python3 ${GRS_SRC}"); 27 | console.log("goresym"); 28 | return true; 29 | } 30 | return false; 31 | } 32 | return { 33 | "name": "goresym", 34 | "license": "MIT", 35 | "desc": "rename symbols with goresym", 36 | "call": coreCall, 37 | }; 38 | }); 39 | })(); 40 | EOF 41 | ` 42 | echo "${GRS_R2JS}" > ${GRS_DST} 43 | # install a plugin that runs ". radare2GoReSym/rename.py" 44 | # Extract the symbols from the binary like this 45 | # GoReSym -t -d -p BINARY > goresym_out.txt 46 | # 47 | # Then within radare2: 48 | # [0x........]> . radare2GoReSym/rename.py 49 | # 50 | # Wait a bit and finally, the sumbols are renamed accordingly 51 | } 52 | 53 | R2PM_UNINSTALL() { 54 | rm -rf GoReSym 55 | rm -f ${R2PM_PLUGDIR}/goresym.r2.js 56 | } 57 | 58 | R2PM_END 59 | -------------------------------------------------------------------------------- /db/yara-r2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/Yara-Rules/r2yara" 4 | R2PM_DESC "Old radare2 module for YARA" 5 | 6 | R2PM_DOC="https://r2yara.readthedocs.io/en/latest/" 7 | 8 | R2PM_INSTALL() { 9 | 10 | if [ 1 = 0 ]; then 11 | # libjansson 12 | wget -c http://www.digip.org/jansson/releases/jansson-2.7.tar.gz || R2PM_FAIL "Downloading libjansson" 13 | tar -xzvf jansson-2.7.tar.gz || R2PM_FAIL "Unpacking libjansson" 14 | cd jansson-2.7 || R2PM_FAIL "Entering libjansson folder" 15 | ./configure --prefix="${R2PM_PREFIX}" || R2PM_FAIL "Configuring libjansson" 16 | ${MAKE} || R2PM_FAIL "Building libjansson" 17 | ${R2PM_SUDO} ${MAKE} install || R2PM_FAIL "Installing libjansson" 18 | cd .. 19 | fi 20 | if [ 1 = 1 ] ; then 21 | if [ ! -d yara ]; then 22 | # Yara 23 | git clone https://github.com/VirusTotal/yara || R2PM_FAIL "Cloning Yara" 24 | # pin the commit 25 | fi 26 | ( cd yara && git reset --hard) 27 | ( cd yara && git checkout v3.6.3 ) 28 | 29 | # R2 module for Yara 30 | cp -f r2.c yara/libyara/modules/r2.c 31 | cp -f dist/yara-3.6.3/libyara/modules/module_list yara/libyara/modules/module_list 32 | cp -f dist/yara-3.6.3/libyara/Makefile.am yara/libyara/Makefile.am 33 | cp -f dist/yara-3.6.3/configure.ac yara/configure.ac 34 | echo 'AM_CFLAGS += @DOLLAR_SIGN@(shell pkg-config --cflags r_socket)' >> yara/Makefile.am 35 | echo 'LIBS += @DOLLAR_SIGN@(shell pkg-config --libs r_socket)' >> yara/Makefile.am 36 | fi 37 | 38 | # Compile Yara 39 | export CFLAGS="-I${R2PM_PREFIX}/include" 40 | export LDFLAGS="-L${R2PM_PREFIX}/lib" 41 | cd yara || exit 1 42 | ./bootstrap.sh || R2PM_FAIL "Bootstrap Yara" 43 | ./configure --prefix="${R2PM_PREFIX}" --enable-cuckoo || R2PM_FAIL "Configure has failed" 44 | ${MAKE} || R2PM_FAIL "Build" 45 | ${R2PM_SUDO} ${MAKE} install || R2PM_FAIL "Install" 46 | } 47 | 48 | R2PM_UNINSTALL() { 49 | rm -rf yara 50 | rm -f jansson-2.7.tar.gz 51 | ${R2PM_SUDO} ${MAKE} uninstall 52 | } 53 | 54 | R2PM_END 55 | -------------------------------------------------------------------------------- /db/r2ghidra-sleigh: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/radareorg/r2ghidra" 4 | R2PM_DESC "Ghidra Sleigh processors for r2ghidra" 5 | R2PM_NEEDS "unzip" 6 | 7 | # Also requires curl or wget 8 | 9 | R2PM_INSTALL_WINDOWS() { 10 | echo "The r2ghidra-sleigh package on windows is managed by r2ghidra" 11 | } 12 | 13 | R2PM_UNINSTALL_WINDOWS() { 14 | echo "The r2ghidra-sleigh package on windows is managed by r2ghidra" 15 | } 16 | 17 | R2PM_INSTALL() { 18 | export USE_BIN=1 19 | export R2G_VERSION=6.0.4 20 | if [ "$USE_BIN" = 1 ]; then 21 | if [ "${GLOBAL}" = 1 ]; then 22 | ${SUDO} mkdir -p $(r2 -HR2_LIBR_PLUGINS) 23 | cd $(r2 -HR2_LIBR_PLUGINS) || return 1 24 | else 25 | mkdir -p "$(r2 -HR2_USER_PLUGINS)" 26 | cd "$(r2 -HR2_USER_PLUGINS)" || return 1 27 | SUDO='' 28 | fi 29 | 30 | DURL="https://github.com/radareorg/r2ghidra/releases/download/${R2G_VERSION}/r2ghidra_sleigh-${R2G_VERSION}.zip" 31 | echo "Downloading $DURL" 32 | ${SUDO} wget --help > /dev/null 2>&1 33 | if [ $? = 0 ]; then 34 | ${SUDO} wget -c "${DURL}" || return 1 35 | else 36 | ${SUDO} curl -Lo "r2ghidra_sleigh-${R2G_VERSION}.zip" "${DURL}" 37 | fi 38 | ${SUDO} unzip -o r2ghidra_sleigh-${R2G_VERSION}.zip || return 1 39 | ${SUDO} rm -rf r2ghidra_sleigh 40 | ${SUDO} mv r2ghidra_sleigh-${R2G_VERSION} r2ghidra_sleigh 41 | SUDO=sudo 42 | else 43 | rm -rf ghidra/ghidra/Ghidra 44 | rm -rf build # clean build 45 | ./preconfigure || return 1 46 | ./configure --prefix=`r2 -H R2_PREFIX` || return 1 47 | ${MAKE} -j1 48 | if [ "${GLOBAL}" = 1 ]; then 49 | ${SUDO} ${MAKE} -C ghidra install 50 | else 51 | ${MAKE} -C ghidra user-install 52 | fi 53 | fi 54 | } 55 | 56 | R2PM_UNINSTALL() { 57 | if [ "$USE_BIN" = 1 ]; then 58 | rm -rf ~/.local/share/radare2/plugins/r2ghidra_sleigh* 59 | else 60 | if [ "${GLOBAL}" = 1 ]; then 61 | ${SUDO} ${MAKE} -C ghidra uninstall 62 | else 63 | ${MAKE} -C ghidra user-uninstall 64 | fi 65 | fi 66 | } 67 | 68 | R2PM_END 69 | -------------------------------------------------------------------------------- /db/reai-r2: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT "https://github.com/RevEngAI/reai-r2" 4 | R2PM_DESC "RevEng.AI plugin for radare2" 5 | 6 | R2PM_INSTALL() { 7 | export CFLAGS="-I${R2PM_PREFIX}/tmp/include" 8 | export LDFLAGS="-L${R2PM_PREFIX}/tmp/lib" 9 | export PKG_CONFIG_PATH="${R2PM_PREFIX}/tmp/lib/pkgconfig" 10 | # install custom cjson 11 | git clone https://github.com/DaveGamble/cJSON || exit 1 12 | cd cJSON 13 | cmake -B Build -G Ninja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DBUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX="${R2PM_PREFIX}/tmp" || exit 1 14 | ninja -C Build || exit 1 15 | ninja -C Build install || exit 1 16 | cd .. 17 | # install custom libtoml 18 | git clone https://github.com/brightprogrammer/tomlc99 || exit 1 19 | cd tomlc99 20 | cmake -B Build -G Ninja -DBUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX="${R2PM_PREFIX}/tmp" || exit 1 21 | ninja -C Build || exit 1 22 | ninja -C Build install || exit 1 23 | cd .. 24 | # install creait 25 | git submodule update --init || exit 1 26 | cd creait || exit 1 27 | cmake -B Build -G Ninja -D CMAKE_INSTALL_PREFIX="${R2PM_PREFIX}/tmp" -DBUILD_SHARED_LIBS=OFF || exit 1 28 | ninja -C Build install || exit 1 29 | cd .. 30 | # build and install libreai plugin for radare2 31 | cmake -B Build -G Ninja || exit 1 32 | ninja -C Build || exit 1 33 | mkdir -p "${R2PM_PLUGDIR}" 34 | cp -f Build/Source/Radare/libreai_radare.* "${R2PM_PLUGDIR}"/ 35 | rm -rf "${R2PM_PREFIX}/tmp" 36 | } 37 | 38 | R2PM_UNINSTALL() { 39 | # uninstall custom cjson 40 | rm -rf "${R2PM_PREFIX}/include"/cjson 41 | rm -f "${R2PM_PREFIX}/lib/pkgconfig/"libcjson.pc 42 | rm -f "${R2PM_PREFIX}/lib/"libcjson* 43 | rm -rf "${R2PM_PREFIX}/lib/cmake/"cJSON 44 | # uninstall custom toml 45 | rm -f "${R2PM_PREFIX}"/include/toml.h 46 | rm -f "${R2PM_PREFIX}"/lib/libtoml.a 47 | rm -f "${R2PM_PREFIX}"/lib/pkgconfig/libtoml.pc 48 | # uninstall creait 49 | rm -rf "${R2PM_PREFIX}"/include/Reai 50 | rm -f "${R2PM_PREFIX}"/lib/libreai.a 51 | # uninstall custom cjson 52 | rm -f "${R2PM_PLUGDIR}"/libreai_radare* 53 | } 54 | 55 | R2PM_END 56 | -------------------------------------------------------------------------------- /db/simulavr-old: -------------------------------------------------------------------------------- 1 | R2PM_BEGIN 2 | 3 | R2PM_GIT git://git.savannah.nongnu.org/simulavr.git simulavr 4 | R2PM_DESC "SimulAVR AVR simulator with GDB server" 5 | 6 | R2PM_INSTALL() { 7 | __="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" 8 | git reset --hard 9 | echo "${__}" | base64 -D | gunzip | patch -p1 10 | glibtoolize --force 11 | autoheader 12 | aclocal --install 13 | autoconf 14 | automake --force-missing --add-missing 15 | ./configure --prefix="${R2PM_PREFIX}" || exit 1 16 | make -j 4 || exit -1 17 | make install || exit 1 18 | } 19 | 20 | R2PM_UNINSTALL() { 21 | make uninstall || exit 1 22 | } 23 | 24 | R2PM_END 25 | --------------------------------------------------------------------------------