Native Ghidra Decompiler for r2

Overview

r2ghidra logo

r2ghidra

ci

This is an integration of the Ghidra decompiler for radare2. It is solely based on the decompiler part of Ghidra, which is written entirely in C++, so Ghidra itself is not required at all and the plugin can be built self-contained. This project was presented at r2con 2019 as part of the Cutter talk: https://youtu.be/eHtMiezr7l8?t=950

Installing

An r2pm package is available that can easily be installed like:

r2pm update
r2pm -ci r2ghidra

By default r2pm will install stuff in your home, you can use -g to use the system wide installation.

Dependencies

To build and install r2ghidra you need the following software installed in your system:

  • radare2 (preferibly from git, for distro builds ensure the -dev package is also installed)
  • pkg-config - that's how build system find libraries and include files to compile stuff
  • acr/make or meson/ninja - pick the build system you like! all of them are maintained and working
  • msvc/g++/clang++ - basically a C++ compiler (and a C compiler)
  • git/patch - needed to clone ghidra-native and build stuff

If the build fails, please carefully read the error message and act accordingly, r2pm should handle the PKG_CONFIG_PATH automatically for you in any case.

Portability

r2ghidra is known to work on the following operating systems:

  • Termux (Android-arm64)
  • macOS / iOS
  • GNU/Linux
  • Windows
  • FreeBSD/x86-64

Usage

To decompile a function, first type af to analize it and then pdg to invoke r2ghidra:

[0x100001060]> pdg?
Usage: pdg  # Native Ghidra decompiler plugin
| pdg           # Decompile current function with the Ghidra decompiler
| pdg*          # Decompiled code is returned to r2 as comment
| pdga          # Side by side two column disasm and decompilation
| pdgd          # Dump the debug XML Dump
| pdgj          # Dump the current decompiled function as JSON
| pdgo          # Decompile current function side by side with offsets
| pdgp          # Switch to RAsm and RAnal plugins driven by SLEIGH from Ghidra
| pdgs          # Display loaded Sleigh Languages
| pdgsd N       # Disassemble N instructions with Sleigh and print pcode
| pdgss         # Display automatically matched Sleigh Language ID
| pdgx          # Dump the XML of the current decompiled function

The following config vars (for the e command) can be used to adjust r2ghidra's behavior:

[0x000275a7]> e?r2ghidra.
      r2ghidra.casts: Show type casts where needed
    r2ghidra.cmt.cpp: C++ comment style
 r2ghidra.cmt.indent: Comment indent
     r2ghidra.indent: Indent increment
       r2ghidra.lang: Custom Sleigh ID to override auto-detection (e.g. x86:LE:32:default)
    r2ghidra.linelen: Max line length
 r2ghidra.maximplref: Maximum number of references to an expression before showing an explicit variable.
     r2ghidra.rawptr: Show unknown globals as raw addresses instead of variables
     r2ghidra.roprop: Propagate read-only constants (0,1,2,3,4)
 r2ghidra.sleighhome: SLEIGHHOME
    r2ghidra.timeout: Run decompilation in a separate process and kill it after a specific time
    r2ghidra.verbose: Show verbose warning messages while decompiling

Here, r2ghidra.sleighhome must point to a directory containing the *.sla, *.lspec, ... files for the architectures that should supported by the decompiler. This is however set up automatically when using the r2pm package or installing as shown below.

Installation

Most users will just use r2pm -ci r2ghidra to build or update the plugin for the version of r2

Windows Binary installation

First, make sure you have the latest version of radare2 for Windows, which can be found as a binary package in the releases.

Then run the following command from the radare2/bin/ directory to find out the R2_USER_PLUGINS path:

$ r2 -hh

Now, download the latest r2ghidra release for Windows and copy the dll file in the R2_USER_PLUGINS` directory.

You should now be able to do pdg while in radare2 to invoke the r2ghidra decompile command.

Building

r2ghidra can be built with meson/ninja and acr/make. Both build systems are maintained, feel free to pick the one you feel more comfortable with.

ACR/Make

The procedure is like the standard autoconf:

$ ./preconfigure   # optional, but useful for offline-packagers, as its downloads the external repos
$ ./configure
$ make
$ make install  # or make user-install

At the moment there is no way to select which processors to support, so it builds them all and takes a lot of time to compile the sleighfiles.

Meson/Ninja

Also works with muon/samu and that's the preferred way to build r2ghidra on Windows.

meson b
ninja -C b

Windows

To compile r2ghidra on windows you need Visual Studio and git installed:

preconfigure   # find VS installation, sets path and download external code
configure      # prepare the build (run meson)
make           # compile and zip the result (run ninja)

License

See LICENSE.md for more details. but it's basically LGPLv3.

Comments
  • r2ghidra doesn't work with radare 5.0.0

    r2ghidra doesn't work with radare 5.0.0

    sudo dpkg -i radare2*5.0.0*.deb r2pm -i r2ghidra r2 -A baby_reverse

    [0x00001200]> s main
    [0x000012e9]> pdg
    Ghidra Decompiler Error: No print languages registered
    
    opened by bazuchan 26
  • XML error parsing SLEIGH file for riscv

    XML error parsing SLEIGH file for riscv

    Describe the issue

    unable to emulate riscv

    How to reproduce?

    1. install plugin r2pm -ci r2ghidra
    2. check support for emulation rasm2 -L (shows _dAe ... r2ghidra)
    3. compile a c file using riscv64-linux-gnu-gcc hello-world.c -o hello-world or even clang --target=riscv64 -march=rv64gc -c hello-world.c (linking appears to have issues on clang)

    try to emulate

    r2 -a r2ghidra -e asm.cpu=riscv hello-world

    goto asm page

    see error image

    Expected behavior

    radare2 opens file and can step through assembly via ESIL

    opened by jstaursky 17
  • r2pm -ci r2ghidra fails with strange error

    r2pm -ci r2ghidra fails with strange error

    I am running Kali Linux in WSL, and for some reason I can’t install r2ghidra. It compiles fine, but then the installation fails with this message:

    : Leaving directory '/home/kali/.local/share/radare2/r2pm/git/r2ghidra/src' gmake: Entering directory '/home/kali/.local/share/radare2/r2pm/git/r2ghidra/src' mkdir -p mkdir: missing operand Try 'mkdir --help' for more information. gmake: *** [Makefile:86: install] Error 1 gmake: Leaving directory '/home/kali/.local/share/radare2/r2pm/git/r2ghidra/src'

    I think this might be because line 83 in src/Makefile, PLUGDIR?=$(R2_LIBR_PLUGINS) doesn’t work for some reason, it looked like PLUGDIR is set to nothing.

    Any ideas?

    opened by N4nn4N0 11
  • r2ghidra

    r2ghidra "No languages available..."

    With radare2 fresh compile from git source on Ubuntu 20.04.2 LTS and installing r2ghidra the recommended way... ($ r2pm -ci r2ghidra):

    using pdg returns "Ghidra Decompiler Error: No print languages registered"

    and running pdgs returns "No languages available, make sure r2ghidra.sleighhome is set correctly!"

    Now I have not done much research on Ghidra yet, but although the README specifically says that this is standalone, something tells me that I am missing files from Ghidra. Have I misunderstood the README for r2ghidra and expected to already have Ghidra set up?

    Thanks.

    opened by rdhoole 11
  • Linux build errors v5.7.8

    Linux build errors v5.7.8

    Description

    Building r2ghidra v.5.7.8

    During build there are multiple errors on Linux x86_64

    ../r2ghidra-5.7.8/src/ArchMap.cpp: In function ‘std::string       SleighIdFromCore(RCore*)’:
        ../r2ghidra-5.7.8/src/ArchMap.cpp:204:45: error: ‘static          void SleighArchitecture::collectSpecFiles(std::ostream&)’ is      protected within this context
          204 |  R2Architecture::collectSpecFiles (std::cerr);
              |                                             ^
    
        In file included from ../r2ghidra-5.7.8/src/ArchMap.h:6,
                         from ../r2ghidra-5.7.8/src/ArchMap.cpp:3:
        ../r2ghidra-5.7.8/ghidra-native/src/decompiler/sleigh_arch.       hh:100:15: note: declared protected here
          100 |   static void collectSpecFiles(ostream &errs);  ///<      Gather specification files in normal locations
              |               ^~~~~~~~~~~~~~~~
        ../r2ghidra-5.7.8/src/ArchMap.cpp:205:31: error:                  ‘getLanguageDescriptions’ is not a member of ‘R2Architecture’
          205 |  auto langs = R2Architecture::                            getLanguageDescriptions ();
    1453       |                               ^~~~~~~~~~~~~~~~~~~~~~~
    
    
    ../r2ghidra-5.7.8/src/SleighInstruction.cpp: In member            function ‘void SleighParserContext::                              setPrototype(SleighInstructionPrototype*)’:
    1506 ../r2ghidra-5.7.8/src/SleighInstruction.cpp:35:4: error:          ‘getBaseState’ was not declared in this scope; did you mean       ‘getParserState’?
           35 |   *getBaseState() = &prototype->rootState;
              |    ^~~~~~~~~~~~
              |    getParserState
    
    ../r2ghidra-5.7.8/src/SleighInstruction.cpp: In member            function ‘SleighParserContext* R2Sleigh::                         newSleighParserContext(Address&, SleighInstructionPrototype*      )’:
        ../r2ghidra-5.7.8/src/SleighInstruction.cpp:79:53: error:         ‘getContextCache’ was not declared in this scope; did you         mean ‘ContextCache’?
           79 |  SleighParserContext *pos = new                           SleighParserContext(getContextCache());
              |                                                           ^~~~~~~~~~~~~~~
              |                                                           ContextCache
    

    I can upload the whole build log, but don't know where to attach it.

    opened by phodina 8
  • meson build system does not install any files for distro packaging

    meson build system does not install any files for distro packaging

    It seems that the meson build system is lacking some instructions. Its not installing a single file:

    Expected files:

    • all the /usr/lib/radare2/$version/r2ghidra_sleigh sleigh as well as the .so
    ==> Starting package()...
    ninja: Entering directory `build'
    [0/1] /usr/bin/meson install --no-rebuild
    Nothing to install.
    

    its called like this:

    meson setup   --prefix        /usr \
      --libexecdir    lib \
      --sbindir       bin \
      --buildtype     plain \
      --auto-features enabled \
      --wrap-mode     nodownload \
      -D              b_lto=true \
      -D              b_pie=true \
      build
    ninja -C build --verbose
    DESTDIR="${pkgdir}" ninja --verbose -C build install
    

    Expected installed files:

    ${pkgdir}/usr/
    ${pkgdir}/usr/lib/
    ${pkgdir}/usr/lib/radare2/
    ${pkgdir}/usr/lib/radare2/5.6.6/
    ${pkgdir}/usr/lib/radare2/5.6.6/anal_ghidra.so
    ${pkgdir}/usr/lib/radare2/5.6.6/asm_ghidra.so
    ${pkgdir}/usr/lib/radare2/5.6.6/core_ghidra.so
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/6502.cspec
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/6502.ldefs
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/6502.pspec
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/6502.sla
    ${pkgdir}/usr/lib/radare2/5.6.6/r2ghidra_sleigh/...
    
    opened by anthraxx 8
  • Build fails Linux / Ubuntu - ‘RCodeMeta’ does not name a type

    Build fails Linux / Ubuntu - ‘RCodeMeta’ does not name a type

    I download and build using

    ./preconfigure
    ./configure
    make
    

    I got a bunch of erros of like:

    CodeXMLParse.cpp:297:7: error: ‘RCodeMeta’ does not name a type; did you mean ‘RCorePuts’?
     R_API RCodeMeta *ParseCodeXML(Funcdata *func, const char *xml) {
    
    

    image

    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
    OFFLOAD_TARGET_NAMES=nvptx-none
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
    
    r2 -v
    radare2 5.2.0-git 27528 @ linux-x86-64 git.5.6.0
    commit: 8d678888a97d9aed4049d1a7467132c41ad6ffa7 build: 2022-02-08__21:17:09
    
    opened by ricardojlrufino 8
  • Configure error when trying to install r2ghidra

    Configure error when trying to install r2ghidra

    Here's the output:

    $ r2pm -ci r2ghidra
    Cleaning r2ghidra...
    DEPENDS: r2ghidra-sleigh
    Sat Jul  9 11:18:22 PM +03 2022
    clean Done For r2ghidra
    /home/mathway/.local/share/radare2/r2pm/db/r2ghidra TGZ=
    Cleaning up /home/mathway/.local/share/radare2/r2pm/git/r2ghidra...
    HEAD is now at 086ec3e Add r2premium package to r2pm (#141)
    Updating 086ec3e..2c70f2c
    Fast-forward
     db/r2ghidra-sleigh |  2 +-
     db/v               | 15 +++++++++++++++
     2 files changed, 16 insertions(+), 1 deletion(-)
     create mode 100644 db/v
    [r2pm] Updating package database /home/mathway/.local/share/radare2/r2pm/db ...
    Already up to date.
    error: pathspec 'r2-5.5.0' did not match any file(s) known to git
    Already up to date.
    DEPENDS: r2ghidra-sleigh
    Sat Jul  9 11:18:22 PM +03 2022
    Install Done For r2ghidra
    git clone https://github.com/radareorg/ghidra-native
    Cloning into 'ghidra-native'...
    cd ghidra-native && git checkout 0.2.0
    Note: switching to '0.2.0'.
    
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by switching back to a branch.
    
    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -c with the switch command. Example:
    
      git switch -c <new-branch-name>
    
    Or undo this operation with:
    
      git switch -
    
    Turn off this advice by setting config variable advice.detachedHead to false
    
    HEAD is now at 2444a81 Update version number
    gmake -C ghidra-native patch
    gmake[1]: Entering directory '/home/mathway/.local/share/radare2/r2pm/git/r2ghidra/ghidra-native'
    for a in patches/0001-space-after-comma.patch patches/0002-make-sleigharch-public.patch patches/0004-public-fields.patch patches/00067-readonly-warning.patch patches/0020-Fix-double-free-crash-when-deinitializing-multiple-X.patch patches/0022-Show-noreturn-information-in-function-signature-2.patch patches/0023-Undef-LoadImage-for-windows.patch patches/0024-ignore-symbol-beyond-space.patch patches/0044-bad-unicode-codepoint.patch patches/0055-datatype-clone.patch patches/0056-nullderef-workaround.patch patches/0090-nocasts-warnings.patch ; do echo "patch -p1 < $a" ; patch -p1 < $a ; done
    patch -p1 < patches/0001-space-after-comma.patch
    patching file src/decompiler/printc.cc
    Hunk #2 succeeded at 1907 (offset 46 lines).
    Hunk #3 succeeded at 2006 (offset 46 lines).
    Hunk #4 succeeded at 2025 (offset 46 lines).
    Hunk #5 succeeded at 2478 (offset 46 lines).
    patch -p1 < patches/0002-make-sleigharch-public.patch
    patching file src/decompiler/sleigh_arch.hh
    patch -p1 < patches/0004-public-fields.patch
    patching file src/decompiler/context.hh
    patching file src/decompiler/sleigh.hh
    Hunk #1 succeeded at 167 (offset 1 line).
    patch -p1 < patches/00067-readonly-warning.patch
    patching file src/decompiler/funcdata_varnode.cc
    patch -p1 < patches/0020-Fix-double-free-crash-when-deinitializing-multiple-X.patch
    patching file src/decompiler/xml.cc
    patching file src/decompiler/xml.hh
    patch -p1 < patches/0022-Show-noreturn-information-in-function-signature-2.patch
    patching file src/decompiler/prettyprint.cc
    patching file src/decompiler/prettyprint.hh
    patching file src/decompiler/printc.cc
    Hunk #1 succeeded at 2358 (offset 46 lines).
    patch -p1 < patches/0023-Undef-LoadImage-for-windows.patch
    patching file src/decompiler/loadimage.hh
    patch -p1 < patches/0024-ignore-symbol-beyond-space.patch
    patching file src/decompiler/database.cc
    patch -p1 < patches/0044-bad-unicode-codepoint.patch
    patching file src/decompiler/stringmanage.cc
    patch -p1 < patches/0055-datatype-clone.patch
    patching file src/decompiler/type.hh
    patch -p1 < patches/0056-nullderef-workaround.patch
    patching file src/decompiler/merge.hh
    patch -p1 < patches/0090-nocasts-warnings.patch
    patching file src/decompiler/printc.cc
    Hunk #1 succeeded at 3097 (offset 2 lines).
    Hunk #2 succeeded at 3106 (offset 2 lines).
    touch patch.done
    gmake[1]: Leaving directory '/home/mathway/.local/share/radare2/r2pm/git/r2ghidra/ghidra-native'
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for working directories... current
    using prefix '/usr'
    checking for c++ compiler... c++
    checking for cpp... cpp
    checking for git... /usr/bin/git
    checking for pkg-config... /usr/bin/pkg-config
    Using PKGCONFIG: /usr/bin/pkg-config
    checking pkg-config flags for r_core... no
    This package is required
    ERROR: configure
    
    

    I am using up-to-date Kali linux distro.

    opened by rednhot 7
  • No sleigh specification for PowerPC:BE:32:default

    No sleigh specification for PowerPC:BE:32:default

    OS: Android-Termux

    i installed r2ghidra using those commands r2pm update r2pm -i r2ghidra it then downloaded, compiled and installed everything, but when a try and actually use it it says this Ghidra Decompiler Error: No sleigh specification for PowerPC:BE:32:default what can i do to fix this thxs

    opened by stupidestmodder 7
  • How to install the r2ghidra plugin on Windows

    How to install the r2ghidra plugin on Windows

    Hi, first of all, thanks for this build. you are doing great. but I am running with an issue regarding the installation of ghindra plugin. I installed radare2 latest version from windows installer and for plugin as per instruction i unzip it in radare directory but when i try to decode a function, i came up with following error

    [0x000008a0]> afl
    0x000008a0    1 12           entry0
    0x00000dac    8 236          sym.Java_sg_vantagepoint_uncrackable2_CodeCheck_bar
    0x00000d8c    1 32           sym.Java_sg_vantagepoint_uncrackable2_MainActivity_init
    0x00000918   10 220          fcn.00000918
    0x000007f0    1 16           sym.imp.pthread_create
    0x00000800    1 16           sym.imp.__cxa_finalize
    0x00000810    1 16           sym.imp.ptrace
    0x00000820    1 16           sym.imp.strncmp
    0x00000830    1 16           sym.imp._exit
    0x00000840    1 16           sym.imp.__stack_chk_fail
    0x00000850    1 16           sym.imp.fork
    0x00000860    1 16           sym.imp.getppid
    0x00000870    1 16           sym.imp.waitpid
    0x00000880    1 16           sym.imp.pthread_exit
    0x00000890    1 16           sym.imp.__cxa_atexit
    0x000008b0    2 8            entry.fini0
    0x000007d0    1 20           fcn.000007d0
    [0x000008a0]> s 0x00000dac
    [0x00000dac]> pdg
    Error: r2pm -ci r2ghidra
    
    opened by robinkang63 7
  • compiling under windows

    compiling under windows

    hello,

    I tried to compile it for windows, but I faced an error:

    1

    My cmake version is:

    C:\Users\root\Desktop\r2ghidra\build>cmake -version cmake version 3.19.4

    CMake suite maintained and supported by Kitware (kitware.com/cmake).


    I am using the latest radare2 version and It works perfectly.


    C:\Users\root\Desktop\r2ghidra\build>radare2 -v radare2 5.1.0 25703 @ windows-x86-64 git.5.1.0-28-g89ff9aaf6 commit: 89ff9aaf6e668dfd2a17bf4cd9a1bdd7e176f4bd build: Wed 02/03/2021__ 7:29:32.24


    C:\Users\root\Desktop\r2ghidra\build>radare2 -H R2_VERSION=5.1.0 R2_PREFIX=. R2_MAGICPATH=C:\Users\root\AppData\Local\Programs\radare2\dist\share\magic R2_INCDIR=C:\Users\root\AppData\Local\Programs\radare2\dist\include\libr R2_LIBDIR=C:\Users\root\AppData\Local\Programs\radare2\dist\lib R2_LIBEXT=dll R2_RCONFIGHOME=C:\Users\root.config\radare2 R2_RDATAHOME=C:\Users\root.local\share\radare2 R2_RCACHEHOME=C:\Users\root.cache\radare2 R2_LIBR_PLUGINS=C:\Users\root\AppData\Local\Programs\radare2\dist\lib\plugins R2_USER_PLUGINS=C:\Users\root.local\share\radare2\plugins R2_USER_ZIGNS=C:\Users\root.local\share\radare2\zigns

    Any help is appreciated.

    opened by q8ing 7
  • Allow using system pugixml for build

    Allow using system pugixml for build

    I ended up patching meson.build by myself:

    From 971fdf012c6c48e43e00d91727698ace4b0c67a6 Mon Sep 17 00:00:00 2001
    From: Maxim Karasev <[email protected]>
    Date: Fri, 23 Dec 2022 22:27:24 +0300
    Subject: [PATCH] Use system pugixml
    
    ---
     meson.build | 13 ++++---------
     1 file changed, 4 insertions(+), 9 deletions(-)
    
    diff --git a/meson.build b/meson.build
    index e35d4f7..a5788c9 100644
    --- a/meson.build
    +++ b/meson.build
    @@ -7,10 +7,6 @@ version : '5.8.0',
     default_options : ['c_std=c11', 'cpp_std=c++11']
     )
     
    -pugixml_sources = [
    -  'third-party/pugixml/src/pugixml.cpp'
    -]
    -
     r2ghidra_sources = [
       'src/ArchMap.cpp',
       'src/CodeXMLParse.cpp',
    @@ -28,7 +24,6 @@ r2ghidra_sources = [
     
     incdirs = [
       'src',
    -  'third-party/pugixml/src/',
       'ghidra-native/src/decompiler/',
     ]
     
    @@ -178,7 +173,6 @@ ghidra_decompiler_sources = [
     
     r2ghidra_core_sources = [
       r2ghidra_sources,
    -  pugixml_sources,
       ghidra_decompiler_sources,
       'src/anal_ghidra_plugin.c',
       'src/anal_ghidra.cpp',
    @@ -188,16 +182,17 @@ r2ghidra_core_sources = [
     
     sleighc_sources = [
       r2ghidra_sources,
    -  pugixml_sources,
       'ghidra-native/src/decompiler/slgh_compile.cc',
       'ghidra-native/src/decompiler/slghparse.cc',
       'ghidra-native/src/decompiler/slghscan.cc',
       ghidra_decompiler_sources,
     ]
     
    +pugixml = dependency('pugixml')
    +
     r2ghidra_core_plugin = library('core_r2ghidra',
       r2ghidra_core_sources,
    -  dependencies: [r_core],
    +  dependencies: [r_core, pugixml],
       override_options : ['c_std=c11', 'cpp_std=c++11'],
       include_directories: r2ghidra_incdirs,
       install: true,
    @@ -207,6 +202,6 @@ r2ghidra_core_plugin = library('core_r2ghidra',
     sleighc_exe = executable('sleighc', sleighc_sources,
       include_directories: r2ghidra_incdirs,
       override_options : ['c_std=c11', 'cpp_std=c++11'],
    -  dependencies: [r_core],
    +  dependencies: [r_core, pugixml],
       install: true
     )
    -- 
    2.39.0
    
    

    Would be nice to have such ability as an option in upstream.

    opened by mxkrsv 3
  • Build the sleigh files with meson

    Build the sleigh files with meson

    Right now it is only possible to do that using the following commands:

    make -C ghidra sleigh-build
    export R2_LIBR_PLUGINS=$(r2 -H R2_LIBR_PLUGINS)
    DESTDIR="${pkgdir}" make -C ghidra install
    

    reference thread: https://github.com/radareorg/r2ghidra/issues/93#issuecomment-1223728289

    opened by trufae 0
  • ERROR: This package does not have R2PM_INSTALL_WINDOWS instructions

    ERROR: This package does not have R2PM_INSTALL_WINDOWS instructions

    Description

    ERROR: This package does not have R2PM_INSTALL_WINDOWS instructions

    Please describe what are you missing or wanting to be improved ERROR: This package does not have R2PM_INSTALL_WINDOWS instructions Provide images, ascii-art, test files and anything that may help us understand your request Screenshot_1

    opened by abasakre 3
  • Add r2ghidra.compiler variable to list and use compiler profiles

    Add r2ghidra.compiler variable to list and use compiler profiles

    • Honor RBinInfo.compiler and the hardcoded list

    Checklist

    • [ ] Closing issues: #issue
    • [ ] Mark this if you consider it ready to merge
    • [ ] I've added tests (optional)
    • [ ] I wrote some documentation

    Description

    opened by trufae 0
  • Build failure when compiling x86-64.slaspec

    Build failure when compiling x86-64.slaspec

    Build Log:

    ...
    Compiling (2 of 2) ../ghidra-native/src/Processors/x86/data/languages/x86-64.slaspec
    WARN  247 NOP constructors found
    WARN  Use -n switch to list each individually
    WARN  201 unnecessary extensions/truncations were converted to copies
    WARN  Use -u switch to list each individually
    WARN  13 operations wrote to temporaries that were not read
    WARN  Use -t switch to list each individually
    Unrecoverable error: Child has as many Patterns as parent
    make[1]: *** [deps.mk:121: sleigh-build] Error 2
    make[1]: Leaving directory '/usr/src/r2ghidra-5.5.2/ghidra'
    make: *** [Makefile:9: all] Error 2
    
    opened by ismaell 16
Releases(5.8.0)
Vahesaroyan-react-native-bubble-select - React native bubble picker

@vahesaroyan/react-native-bubble-select React native bubble picker Installation

Vahe Saroyan 0 Jan 30, 2022
A react native interface for integrating payments using Braintree

A react native interface for integrating payments using Braintree

eKreative 17 Dec 30, 2022
Mimicrated views and controls to native Apple appearance.

Mimicrated views and controls to native Apple appearance. If you have any ideas of what elements can be added, let me know. Below you will see previews of all the elements and how to use them.

Ivan Vorobei 85 Dec 3, 2022
React Native 实现无侵入自定义下拉刷新组件

react-native-ly-refresh-control 下拉刷新 iOS 基于MJRefresh 通过RCTCustomRefreshContolProtocol实现RefreshControl组件封装 JS端可以无侵入自定义下拉刷新只需要替换对应的refreshControl Androi

少言 12 Jul 2, 2022
iOS 15 share play API in react-native

react-native-shareplay iOS 15 share play API in react-native Installation yarn add react-native-shareplay And go to Xcode Capabilities and enable "Gro

Popshop Live 27 Oct 16, 2022
Static Native Template and Dynamic Styling without any other app release

FileManager Project Students and Freshers, Good opportunity for you to learn and contribute in this project. Here you would learn how you can change t

Naveen Chauhan 3 Nov 30, 2021
Flutter package for detecting NSFW images and videos using native implementation

Flutter NSFW 1- Download, tflite modle and put it in assets folder 2 - Add the path of the tfliet to pubspec.yaml 3 - Read the file using path_provide

Syed Ahsan Ali 8 Oct 16, 2022
React Native package for interacting with HomeKit devices

React Native package for interacting with HomeKit devices

Ibrahim Berat Kaya 4 Dec 24, 2021
react native esptouch

react-native-esptouch One should know that This is a Unofficial project. The official demo is below: EsptouchForAndroid EsptouchForIOS Getting started

五毛共和国 Wumaoland 0 Oct 25, 2021
React Native Template for Taro

React Native Template for Taro requirement taro: @tarojs/cli@^3.2.0 framework: 'react' quick start install react native library install peerDependenci

null 1 Nov 20, 2021
A native video wallpaper app for macOS

WallpapaerZ This is an wallpaper software that runs on macOS. It can bring video wallpaper to the desktop The project is coded in storyboard with swif

Celeglow 6 Dec 12, 2022
An ultra-lightweight native Discord client for vintage and modern Mac OS

Discord Lite An ultra-lightweight native Discord client for vintage and modern Mac OS Minimum System Requirements Mac OS X version 10.4 (Tiger) PowerP

null 155 Jan 2, 2023
A suite of IoT tools to use with React Native.

react-native-iot-tools WIP. A suite of IoT tools for React Native applications. Package iOS Android @react-native-iot-tools/bluetooth ✅ ❌ @react-nativ

Sara Pope 3 Oct 31, 2022
A testing MQTT react native library

react-native-awesome-testing abc Installation npm install react-native-awesome-testing Usage import { multiply } from "react-native-awesome-testing";

null 0 Nov 26, 2021
Encryption/Decryption for React Native

@dhairyasharma/react-native-encryption Encryption/decryption for React Native. Benchmark File Details File Link http://bit.do/benchmarkfile File Size

Dhairya Sharma 5 Sep 13, 2022
Encryption/Decryption for React Native

@dhairyasharma/react-native-encryption Encryption/decryption for React Native. Benchmark File Details File Link http://bit.do/benchmarkfile File Size

Dhairya Sharma 5 Sep 13, 2022
iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android).

FinanceReactNative iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android). Data is pulled from Yahoo Finance

kf 2k Dec 29, 2022
Demo app to demonstrate native blur capabilities

Blurrable Demo app to demonstrate native blur capabilities. You can customize th

Mariya Pankova 0 Dec 18, 2021
React Native Photo Editor (RNPE)

React Native Photo Editor (RNPE) ?? Image editor using native modules for iOS an

Suman Kamilya 9 Aug 16, 2022