All Projects → Comsecuris → Gdbghidra

Comsecuris / Gdbghidra

Licence: mit
gdbghidra - a visual bridge between a GDB session and GHIDRA

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Gdbghidra

Angrgdb
Use angr inside GDB. Create an angr state from the current debugger state.
Stars: ✭ 165 (-34.26%)
Mutual labels:  plugin, debugger, gdb
Rr
Record and Replay Framework
Stars: ✭ 6,469 (+2477.29%)
Mutual labels:  debugger, gdb
Voltron
A hacky debugger UI for hackers
Stars: ✭ 5,599 (+2130.68%)
Mutual labels:  debugger, gdb
Gdbgui
Browser-based frontend to gdb (gnu debugger). Add breakpoints, view the stack, visualize data structures, and more in C, C++, Go, Rust, and Fortran. Run gdbgui from the terminal and a new tab will open in your browser.
Stars: ✭ 8,339 (+3222.31%)
Mutual labels:  debugger, gdb
Lldb
Project moved to: https://github.com/llvm/llvm-project
Stars: ✭ 412 (+64.14%)
Mutual labels:  debugger, gdb
Xanalyzer
xAnalyzer plugin for x64dbg
Stars: ✭ 553 (+120.32%)
Mutual labels:  plugin, debugger
K1801
1801 series ULA reverse engineering
Stars: ✭ 16 (-93.63%)
Mutual labels:  engineering, reverse
madbomber
Backtrace-on-throw C++ exception logger
Stars: ✭ 17 (-93.23%)
Mutual labels:  debugger, gdb
Pyvmidbg
LibVMI-based debug server, implemented in Python. Building a guest aware, stealth and agentless full-system debugger
Stars: ✭ 192 (-23.51%)
Mutual labels:  debugger, gdb
Gdb Frontend
☕ GDBFrontend is an easy, flexible and extensionable gui debugger.
Stars: ✭ 2,104 (+738.25%)
Mutual labels:  debugger, gdb
Dlangide
D language IDE based on DlangUI
Stars: ✭ 358 (+42.63%)
Mutual labels:  debugger, gdb
Reverse Engineering Tutorials
Some Reverse Engineering Tutorials for Beginners
Stars: ✭ 217 (-13.55%)
Mutual labels:  engineering, reverse
insight
A Tcl/Tk Frontend for GDB. This is an AppImage(Portable Package) of insight for the sake of Jeff Duntemann's amazing book.
Stars: ✭ 31 (-87.65%)
Mutual labels:  debugger, gdb
Jbytemod Beta
Java bytecode editor
Stars: ✭ 602 (+139.84%)
Mutual labels:  engineering, reverse
gdbstub
An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Stars: ✭ 158 (-37.05%)
Mutual labels:  debugger, gdb
Dontbug
Dontbug is a reverse debugger for PHP
Stars: ✭ 710 (+182.87%)
Mutual labels:  reverse, debugger
lldbg
A lightweight native GUI for LLDB.
Stars: ✭ 83 (-66.93%)
Mutual labels:  debugger, gdb
metal.test
Deprecated, superseded by https://github.com/metal-ci/test
Stars: ✭ 41 (-83.67%)
Mutual labels:  debugger, gdb
Reverse Engineering
Reverse-Engineered Tools Count-106
Stars: ✭ 94 (-62.55%)
Mutual labels:  engineering, reverse
Idangr
Use angr in the IDA Pro debugger generating a state from the current debug session
Stars: ✭ 214 (-14.74%)
Mutual labels:  plugin, debugger

gdbghidra - a visual bridge between a GDB session and GHIDRA

The purpose of gdbghidra is to provide means during interactive debug sessions in gdb to quickly follow the flow in GHIDRA; similar to our gdbida plugin for IDA Pro. gdbghidra is not meant to be a full debugger. Instead, it merely serves as a small helper tool to assist during interactive debug sessions that make use of a mixture of tools. It provides simple means to quickly follow along a gdb debug session in GHIDRA. Also it does not need any dependencies on the Python side.

gdbghidra consists of the following two parts:

  • dist/ghidra_9.0.1_PUBLIC_*_GDBGHIDRA.zip
  • data/gdb_ghidra_bridge_client.py : gdb python script

data/gdbghidra

Features

  • Sync/colorize cursor inside GHIDRA to PC of GDB session
  • Sync stack to GHIDRA on GDB break
  • Automatically set register values within GHIDRA for better decompilation
  • GHIDRA register window
  • Set/Toggle/Delete breakpoints from GHIDRA
  • Automatic relocation

Installation

Make a change the ~/.gdbinit configuration file to include the plugin:

source ~/gdb_ghidra_bridge_client.py

To install the plugin in GHIDRA follow these steps:

  • Open GHIDRA and select File/Install Extensions.
  • Press the green + button and select dist/ghidra_9.0.1_PUBLIC_*_GDBGHIDRA.zip.
  • Make sure the Plugin has a tick in the box left.
  • Start GHIDRA CodeBrowser.
  • Open File/Configure and press the adapter icon in above left oft 'Ghidra Core'.
  • Filter for gdb and make sure GDBGhidraPlugin is enabled.

Now you should see the GDBGhidraPlugin window. You can now configure the listener port using the configuration button and start the server using the refresh button.

Next, configure the gdb stub to connect to gdbghidras's port (either command line or gdbinit):

ghidrabridge 10.0.10.10:2305

Building

To build this plugin using gradle run the following command inside gdbghidra directory

gradle -PGHIDRA_INSTALL_DIR=<PATH_TO_GHIDRA_FOLDER>

This produces a fresh extension zip within the gdbghidra/dist folder.

Development

If you want to build gdbghidra from source using GHIDRA's eclipse environment make sure to add json-simple-1.1.1.jar to the classpath as follows:

  • Click the Run Menu and select Run Configurations.
  • Navigate to Ghidra/GDBGhidra and select Classpath.
  • Navigate down the list to User Entries, select User Entries and click on ADD JARS....
  • Select lib/json-simple-1.1.1.jar

Between GHIDRA and GDB a simple JSON message format is spoken which could also be used to connect other tools/debuggers to this GHIDRA plugin.

Notes

Please be aware that this is not considered to be finished. Specifically, the following thoughts are on my mind:

  • Network listening input masks untested for errors.
  • The network connection is not authenticated in any way.
  • A lot of potential for additional commands. For now, I kept it super simple.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].