emoon / ProDBG

Debugging the way it's meant to be done
Other
513 stars 31 forks source link

Using radare2 as a backend #81

Open XVilka opened 9 years ago

XVilka commented 9 years ago

It will bring you a bunch of the features automatically:

Architectures:

6502, 8051, CRIS, H8/300, LH5801, LH5801, T8200, arc, arm, avr, bf, blackfin, csr, dalvik, dcpu16, gameboy, i386, i4004, i8080, m68k, malbolge, mips, mips, msil, nios II, powerpc, rar, sh, snes, sparc, tms320 (c54x c55x c55+), x86-64, zimg.

File Formats:

bios, dex, elf, elf64, filesystem, java, fatmach0, mach0, mach0-64, MZ, PE, PE+, TE, COFF, plan9, bios, dyldcache, Gameboy and Nintendo DS ROMs

Operating Systems:

Android, GNU/Linux, [Net|Free|Open]BSD, iOS, OSX, QNX, w32, w64, Solaris, Haiku, FirefoxOS

Bindings:

Vala/Genie, Python (2, 3), NodeJS, LUA, Go, Perl, Guile, php5, newlisp, Ruby, Java, OCAML, ...

Debug protocols:

RAP (radare2 internal), native (platform-dependent), gdb remote, windbg remote.

See for yourself: https://github.com/radare/radare2

emoon commented 9 years ago

Thanks for the tip!

Looking at the project it seems interesting but not sure how well it would fit as a backend. A backend needs to support actual debugging while many of the arch listed has disassemble support but no way to actual run any code (like an emulator) is that correct?

XVilka commented 9 years ago

It does have support for the debugging various architectures, see libr/debug and shlr/gdbr - also emulation support via the our intermediate language ESIL. On Jun 17, 2015 11:29 PM, "Daniel Collin" notifications@github.com wrote:

Thanks for the tip!

Looking at the project it seems interesting but not sure how well it would fit as a backend. A backend needs to support actual debugging while many of the arch listed has disassemble support but no way to actual run any code (like an emulator) is that correct?

— Reply to this email directly or view it on GitHub https://github.com/emoon/ProDBG/issues/81#issuecomment-112921037.

XVilka commented 8 years ago

Since you've switched to Rust - you can use r2pipe.rs https://github.com/radare/r2pipe.rs And usage example is in https://github.com/radare/radeco-lib

emoon commented 8 years ago

Sweet! Thanks for the info. Yeah that should make it a bit easier to use actually. It's still on my list to investigate radare2 closer.