Code Monkey home page Code Monkey logo

radareorg / radare2 Goto Github PK

View Code? Open in Web Editor NEW
19.6K 486.0 2.9K 169.16 MB

UNIX-like reverse engineering framework and command-line toolset

Home Page: https://www.radare.org/

License: GNU Lesser General Public License v3.0

Makefile 0.86% C 97.00% Assembly 0.01% Shell 0.44% Perl 0.02% HTML 0.17% JavaScript 0.06% C++ 0.63% CSS 0.06% Batchfile 0.03% R 0.01% Roff 0.12% Python 0.11% Meson 0.40% Vala 0.01% Gnuplot 0.01% Rebol 0.06% sed 0.01% RouterOS Script 0.01% Wren 0.01%
radare2 c commandline reverse-engineering forensics security binary-analysis malware-analysis disassembler hacktoberfest

radare2's Introduction

screenshot

Radare2: Libre Reversing Framework for Unix Geeks

Latest packaged version Tests Status build tcc CII Best Practices Build Status Discord

See the Releases page for downloads. The current git master branch is 5.9.1, next will be 5.9.2.

  • Since r2-5.6.0 all the patch releases are abi stable
  • Odd patch versions are used in git builds only, releases use even numbers
  • No need to recompile the plugins, bindings or tools if the major and minor version are the same

Description

r2 is a complete rewrite of radare. It provides a set of libraries, tools and plugins to ease reverse engineering tasks. Distributed mostly under LGPLv3, each plugin can have different licenses (see r2 -L, rasm2 -L, ...).

The radare project started as a simple command-line hexadecimal editor focused on forensics. Today, r2 is a featureful low-level command-line tool with support for scripting with the embedded Javascript interpreter or via r2pipe.

r2 can edit files on local hard drives, view kernel memory, and debug programs locally or via a remote gdb/windbg servers. r2's wide architecture support allows you to analyze, emulate, debug, modify, and disassemble any binary.

screenshot

Installation

The recommended way to install radare2 is via Git using acr/make or meson:

git clone https://github.com/radareorg/radare2
radare2/sys/install.sh

On Windows you may want to use the precompiled builds or the .bat files to compile if you have msvc:

preconfigure.bat       REM setup python, meson, ninja
configure.bat          REM run meson b + vs project
make.bat               REM run ninja -C b
prefix\bin\radare2.exe
  • r2 can be installed from git or via pip using r2env.
  • Run sys/install.sh for the default acr+make+symlink installation
  • meson/ninja (muon/samu also works) and make builds are supported.
  • Windows builds require meson and msvc or mingw as compilers
  • To uninstall the current build of r2 run make uninstall
  • To uninstall ALL the system installations of r2 do: sudo make purge

Popular Plugins:

Using the r2pm tool you can browse and install many plugins and tools that use radare2.

  • esilsolve: The symbolic execution plugin, based on esil and z3
  • iaito: The official Qt graphical interface
  • keystone Assembler instructions using the Keystone library
  • r2ai Run a Language Model in localhost with Llama inside r2!
  • r2dec: A decompiler based on r2 written in JS, accessed with the pdd command
  • r2diaphora: Diaphora's diffing engine working on top of radare2
  • r2frida: The frida io plugin. Start r2 with r2 frida://0 to use it
  • r2ghidra: The native ghidra decompiler plugin, accessed with the pdg command
  • r2papi High level api on top of r2pipe
  • r2pipe Script radare2 from any programming language
  • r2poke Integration with GNU/Poke for extended binary parsing capabilities
  • r2yara Run Yara from r2 or use r2 primitives from Yara
  • radius2: A fast symbolic execution engine based on boolector and esil
  • r2sarif import/export SARIF documents, streamlining vulnerability reporting and visualization in binaries

Usage

These are the first steps to use r2, read the book or find tutorials for more details

$ r2 /bin/ls   # open file in read-only
> aaa          # analyse the program (r2 -A)
> afl          # list all functions (try aflt, aflm)
> px 32        # print 32 byte hexdump current block
> s sym.main   # seek to main (using flag name)
> f~foo        # filter flags matching 'foo' (internal |grep)
> iS;is        # list sections and symbols (rabin2 -Ss)
> pdf; agf     # disassembly and ascii-art function graph
> oo+;w hello  # reopen in read-write and write a string
> ?*~...       # interactive filter in all command help
> q            # quit

Many plugins are included in r2 by default. But you can extend its capabilities by using the r2pm package manager.

r2pm -s <word>  # search packages matching a word
r2pm -Uci <pkg> # update database and clean install a package
r2pm -u <pkg>   # uninstall the given package
r2pm -l <pkg>   # list installed packages

Resources

Documentation

Learn more about r2 watching youtube talks from r2con. There are also many blogposts, slidedecks and the official radare2 book, but it's always a good idea to join any of the official chats and drop your questions/feedback around.

Community

Supported Platforms

Operating Systems

Windows (since XP), Linux, Darwin, GNU/Hurd, Apple's {Mac,i,iPad,watch}OS, Android, [Dragonfly, Net, Free, Open] BSD, Z/OS, QNX, SerenityOS, Solaris, Haiku, Vinix, FirefoxOS.

Architectures

i386, x86-64, Alpha, ARM, AVR, BPF, MIPS, PowerPC, SPARC, RISC-V, SH, m68k, S390, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, PDP11, m680x, V850, CRIS, XAP (CSR), PIC, LM32, 8051, 6502, i4004, i8080, Propeller, EVM, OR1K Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, xcore, NIOS II, Java, Dalvik, Pickle, WebAssembly, MSIL, EBC, TMS320 (c54x, c55x, c55+, c64x), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI, lm32, MCORE, mcs96, RSP, SuperH-4, VAX, KVX, Am29000, LOONGARCH, JDH8, s390x.

File Formats

ELF, Mach-O, Fatmach-O, PE, PE+, MZ, COFF, XCOFF, OMF, TE, XBE, SEP64, BIOS/UEFI, Dyldcache, DEX, ART, Java class, Android boot image, Plan9 executables, Amiga HUNK, ZIMG, MBN/SBL bootloader, ELF coredump, MDMP (Windows minidump), PDP11, XTAC, CGC, WASM (WebAssembly binary), Commodore VICE emulator, QNX, WAD, OFF, TIC-80, GB/GBA, NDS and N3DS, and mount several filesystems like NTFS, FAT, HFS+, EXT,...

Packaging Status

  • Snap package
  • Termux package
  • Alpine Linux Edge package Alpine Linux 3.13 package Alpine Linux 3.12 package
  • Arch package AUR package
  • EPEL 7 package
  • EPEL 8 package
  • EPEL 9 package
  • Fedora Dev Fedora 36 Fedora 34
  • FreeBSD port OpenBSD port pkgsrc current package
  • Homebrew package MacPorts package
  • Haiku Ports Void Linux
  • Ubuntu 20.04 package Ubuntu 18.04 package
  • Debian Unstable package Raspbian Stable package Kali Linux Rolling package

radare2's People

Contributors

alvarofe avatar condret avatar crowell avatar cyanpencil avatar deeso avatar devnexen avatar eagleoflqj avatar gustavolcr avatar jroimartin avatar jvoisin avatar kazarmy avatar lazula avatar lowlyw avatar maskray avatar mrmacete avatar oddcoder avatar pelijah avatar radare avatar ret2libc avatar rlaemmert avatar sivaramaaa avatar srimantabarua avatar svenito avatar thestr4ng3r avatar trufae avatar vane11ope avatar wargio avatar xarkes avatar xvilka avatar yossizap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

radare2's Issues

Implement at least linux/x86 and linux/amd64 syscall map

Syscalls are missing from the linux maps. This tasks is tedious and hard to automate: http://stackoverflow.com/questions/6604007/how-can-i-get-a-list-of-linux-system-calls-and-number-of-args-they-take-automatic

Reply 1: We need to resolve the syscall arg types.. Maybe parsing strace sources?
Reply 2: This has been delayed until 0.9
Reply 3: The current version of hg uses sdb with RPair to get the syscall information. This fixes all bugs like speed and memory usage. We need to implement all those syscall information tables NOW!

ragg2 gives incorrect input when using -d -w

if the last character is of the replacement is b it always gets put at the beginning of the string regardless of where you told it to go.

root@protostar:# ragg2 -p A200 -d 50:0xccccccb
cbcccc0c41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
root@protostar:
# ragg2 -p A200 -d 50:0xcb
cb00000041414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
root@protostar:# ragg2 -p A10 -d 50:0xcb
cb000000414141414141
root@protostar:
# ragg2 -p A20 -w 10:cb
cb41414141414141414141414141414141414141

libr/core/disasm.c - r_core_print_disasm()

r_core_print_disasm() is a 499 line long function with >50 local variables. I am sure this can be refactored and cleaned.

Reply 1: This is in TODO since radare1 0.1.. we always made fun about how dirty this code is, but we never did nothing as long as it's not a priority and it will take lot of time to refactorize it in an extensible way. We are open to patches and proposals ;)

Bogus command history

when browsing the history in upwards direction and then changing the direction downwards the last item on which the direction is changed takes two down arrows. it should take only one.

example of actual behavior:
[TIME:KEY:HISTORY_ITEM]
1:U:Z
2:U:Y
3:U:X
4:D:X
5:D:Y

expected behavior:
[TIME:KEY:HISTORY_ITEM]
1:U:Z
2:U:Y
3:U:X
4:D:Y

Next the visual mode doesn't remember the commands in history.
And the history it's self shouldn't contain duplicate commands that immediately follows each other.

P.S. Moved from http://rada.re/y/bugs.php?bugs&s=view&id=78

"ao" command doesn't respect the "asm.bits" setting

[0x00000100]> e asm.bits
16
[0x00000100]> pd 1
      0x00000100      e9010f           jmp word 0x1004
[0x00000100]> ao 5
addr: 0x00000100
size: 5
type: 1 (jmp)
eob: 1
jump: 0xffffffffc9341006
fail: 0xffffffffffffffff
stack: 0
cond: 0
family: 0

So, "pd 1" reports that the opcode length is 3 (which is correct), but "ao 5" says "size: 5". Maybe it interprets it in 32-bit mode instead of 16-bit.

I'm testing on:

./bin/r2 -v
radare2 0.9.1git @ darwin-little-x86-64 build 2012-09-24
commit: 757d692e19d6ebb7a31d301e8f5405e5120e6b83

Can't continue program under debugger on OS X 10.6.8

not sure if it's a bug or my fault. I tried radare2 0.9.1hg @ darwin-little-x86 build 2012-02-13 and radare2 0.9 @ darwin-little-x86

Here's the results...


bash-3.2$ r2 -d test
Process with PID 31299 started...
PID = 31299
io_redirect: mach://31299
pid: 31299
task: 4867
NOTE: Fat binary found. Selected sub-bin is: -a x86 -b 64
NOTE: Use -a and -b to select sub binary in fat binary
$ r2 -a x86 -b 64 /bin/test # 0x00001000
$ r2 -a x86 -b 32 /bin/test # 0x00006000
$ r2 -a ppc -b 32 /bin/test # 0x0000b000
pid = 31299 tid = 31299
r_debug_select: 31299 31299
-- If you want to open the file in read-write mode use -w flag or -e cfg.write=true
[0x7fff5fc01028]> dc
r_debug_reg: error reading registers pid=31299
trace_pc: cannot get opcode size at 0x7fff5fc01028
r_debug_reg: error reading registers pid=31299
[R2] Breakpoint recoil at 0x7fff5fc01028 = 0
r_debug_select: 31299 0
r_debug_reg: error reading registers pid=31299
r_debug_reg: error reading registers pid=31299
r_debug_reg: error reading registers pid=31299
[0x7fff5fc01028]>

Reply 1: are you using the version from hg? this works fine here on 10.6.8

P.S. Moved from http://rada.re/y/bugs.php?bugs&s=view&id=66

rasm2 gives incorrect hexpairs

rasm2 "mov al, cl" gives
89ff
rasm2 "pop al" gives
ff

root@protostar:~# rasm2 "mov al, cl"
89ff

yet for some reason it seems to be able to disassemble the opcode fine
root@protostar:~# rasm2 -d "88 c8"
mov al, cl

Visual register/disasm view highlighting broken on openbsd/amd64

On openbsd/i386, when stepping (s) in the regsiter/disasm display, r2 highlights in white any register which has changed since the last state, including, always, eip.

On amd64, the only flag ever highlighted is rflags.

-- vext01

Reply 1: its broken in all systems. i will fix this as soon as I get some spare time :)
Reply 2: FYI: this is still busted as of 20120201. Cheers

P.S. Moved from http://rada.re/y/bugs.php?bugs&s=view&id=52

16bit - wrong segmentation

Still using same file - http://xvilka.me/ami_bios.bin
When loading it with:
r2 -e asm.bits=16 -e io.va=true ami_bios.bin
Then do:
S $s-0x10000 0xf000:0x0000 0x10000 0x10000 bootblk rwx
Then go to:
s f000:ffaa
Then run Visual mode - it show only 'ff'-s
while here must be jump opcode!

sys/python.sh seems to be failing

I am getting the following from sys/python.sh:

PYTHON_VERSION=2.7
PYTHON=python${PYTHON_VERSION}

TODO: PREFIX=/usr

Using PYTHON_VERSION 2.7
Using PYTHON_CONFIG python2.7-config

==> Using valabind valabind 0.6.4 - [email protected]
==> Using swig 2.0.4
Checking valabind languages support...

  • python: yes
  • perl: no
  • ruby: no
  • lua: no
  • go: no
  • java: no
  • guile: no
  • php5: /usr/bin/valabind-cc: 1: /usr/bin/valabind-cc: php-config: not found
    /usr/bin/valabind-cc: 1: /usr/bin/valabind-cc: php-config: not found
    no
  • node-ffi: no
  • ctypes: no
  • cxx: yes (g++)
  • valac: yes
    Supported langs:
  • python
    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... gcc
    checking for c++ compiler... g++
    checking for valabind... /usr/bin/valabind
    checking for swig... /usr/bin/swig
    checking for g-ir-compiler... no
    checking pkg-config flags for r_core... yes
    creating ./config.mk
    cleaning temporally files... done

Final report:

  • PREFIX = /usr
  • HAVE_SWIG = 1
  • HAVE_VALABIND = 1
  • HAVE_GIRCOMPILER = 0
  • DEVEL_MODE = 1
    mkdir -p /usr/share/vala/vapi
    /usr/bin/install -m 644 vapi/.vapi vapi/.deps /usr/share/vala/vapi
    rm -f .so r_
    Build r_core -lr_core -lr_config -lr_cons -lr_cmd -lr_util -lr_flags -lr_asm -lr_lib -lr_debug -lr_hash -lr_bin -lr_lang -lr_io -lr_anal -lr_parse -lr_bp -lr_egg -lr_reg -lr_search -lr_syscall -lr_sign -lr_diff -lr_socket -lr_fs -lr_magic -lr_db
    valabind-cc python r_core -NRadare --swig -I../../libr/include -x --vapidir=../vapi ../vapi/r_core -I/usr/include/libr -lr_core -lr_config -lr_cons -lr_cmd -lr_util -lr_flags -lr_asm -lr_lib -lr_debug -lr_hash -lr_bin -lr_lang -lr_io -lr_anal -lr_parse -lr_bp -lr_egg -lr_reg -lr_search -lr_syscall -lr_sign -lr_diff -lr_socket -lr_fs -lr_magic -lr_db
    valabind -x -x --vapidir ../vapi -o r_core.i -m r_core ../vapi/r_core --swig -NRadare
    Unknown option -NRadare
    Try --help
    ... r_core.so
    Build r_bin -lr_bin -lr_lib -lr_util
    valabind-cc python r_bin -NRadare --swig -I../../libr/include -x --vapidir=../vapi ../vapi/r_bin -I/usr/include/libr -lr_bin -lr_lib -lr_util
    valabind -x -x --vapidir ../vapi -o r_bin.i -m r_bin ../vapi/r_bin --swig -NRadare
    Unknown option -NRadare
    Try --help
    ... r_bin.so
    Build r_asm -lr_asm -lr_lib -lr_util -lr_parse -lr_db
    valabind-cc python r_asm -NRadare --swig -I../../libr/include -x --vapidir=../vapi ../vapi/r_asm -I/usr/include/libr -lr_asm -lr_lib -lr_util -lr_parse -lr_db
    valabind -x -x --vapidir ../vapi -o r_asm.i -m r_asm ../vapi/r_asm --swig -NRadare
    Unknown option -NRadare
    Try --help
    ... r_asm.so
    cd .. ; make install-python
    make[1]: Entering directory /opt/analrepo/build/radare2/r2-bindings' [ -e python/_r_core.so ] && true make[1]: *** [install-python] Error 1 make[1]: Leaving directory/opt/analrepo/build/radare2/r2-bindings'
    make: *** [install] Error 2

Radare2 itself installs and works fine. Please let me know if I can provide more info :-)

radare2 doesn't always show indirect values

On some instructions involving reading a value somewhere, radare2 conveniently displays the value next to the pointer, like this:

0xc0008714 98009fe5 ldr r0, [pc, #152] ; 0xffffffffc00087b4; => 0xc06b4308

It however doesn't do this for all instructions:

0xc0008700 a4a09f15 ldrne sl, [pc, #164] ; 0xffffffffc00087ac

Also, on arm, some other instructions involving pc might get some helpfulness from having the result shown, like in:

0xc00081b8 68008fe2 add r0, pc, #104 ; 0x68

It would already be interesting to have pc + 0x68 already displayed, but since on arm, reading pc returns actual instruction address + 8 (4 in thumb), it's even more interesting and avoids stupid mistakes. Here, the result is 0xc00081b8 + 0x68 + 8.

P.S. Moved from http://rada.re/y/bugs.php?bugs&s=view&id=72

rabin2 Segmentation fault. (cfg->ht)

$ rabin2 -v
rabin2 v0.9.3git
$ echo 00000034001c000201020000000d0efb01010101010000000001000073612e61 | xxd -r -p > /tmp/bin
$ rabin2 -z /tmp/bin
Segmentation fault (core dumped)
$ gdb rabin2
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
http://bugs.launchpad.net/gdb-linaro/...
Reading symbols from /usr/bin/rabin2...done.
(gdb) r -z /tmp/bin
Starting program: /usr/bin/rabin2 -z /tmp/bin
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6b1f61a in r_config_node_get (cfg=0x0, name=0x7ffff79cea58 "bin.strings") at config.c:56
56 return r_hashtable_lookup (cfg->ht, r_str_hash (name));
(gdb) p name
$1 = 0x7ffff79cea58 "bin.strings"
(gdb) p cfg->ht
Cannot access memory at address 0x30

Errors while parsing fasm-written ELF

  1. libr/bin/p/format/elf/elf.c:104 malloc - cannot allocate memory
    Warning: Cannot initialize strings table

Here is assembler source - http://xvilka.me/hello.asm
Here is produced binary - http://xvilka.me/hello

Also it recognize data as code - compare assembler sources and 'pd' produced output

  1. Similar issue for stripped elf.

Assembler sources - http://xvilka.me/hello2.s
Produced (as hello2.s -o hello2.o) object file - http://xvilka.me/hello2.o
Resulting binary (ld --strip-all hello2.o -o hello2; sstrip hello2) - http://xvilka.me/hello2

16bit x86 segment addressing error

Once again:
If do open file with:
r2 -e asm.bits=16 -e io.va=true bios.bin
Then add segment with
S $s-0x10000 0xf0000 0x10000 0x10000 bootblk rwx
Then enable segment addressing
e scr.offseg=true
Then we need go 0xF000:0xFFF0 so run
s f000:fff0
we got:
[0f00:fff0]>
which is obviously wrong, while if do pd 1 - data is ok, so real address is valid - just wrong representation.
One more, if go to 0xF000:0xFFAA
we will see such jump:
0x000fffaa e99300 jmp word 0x100040
which is obviously wrong, it must be
jmp word 0x40
and point to 0xF000:0x0040

used binary file is http://xvilka.me/ami_bios.bin

NULL ptr dereference at libr/core/vmenus.c:950

For some reason core ptr is NULL.

You can reproduce it with:

  1. r2 dbg://ls
  2. press 'V' to enter visual mode
  3. press 'v', it will show "Do you want to print .... chars? (y/N)"
  4. try to resize the terminal.

PS: this bug exist only if you use dbg://

wrong analysis of 16bit jumps

For example, see this code:

f000:0540   6633c0     xor eax, eax
f000:0543   0fa2          cpuid
f000:0545   6681fb47656e75  cmp ebx, 0x756e6547
f000:054c   7404         jz 0xf0552
f000:054e   fa              cli
f000:054f    f4              hlt
f000:0550   ebfc          jmp 0xf054e
f000:0552   0f08          invd
f000:0554   0f6eff        movd mm7, edi
f000:0557   668bc4     mov eax, esp
f000:055a   e9c806     jmp word 0xc25

Here radare2 can recognize deadloop:

-> f000:054f f4  hlt
.=< f000:0550 ebfc jmp 0xf054e

but not this normal jump:

f000:054c     jz 0xf0552
...
f000:0552     invd

16bit jump recognizing error in 32bit image.

See example here http://xvilka.me/phx_uefi.bin

  1. Open bios file with radare2 using this command:

    r2 -e asm.bits=32 -e io.va=true phx_uefi.bin

You should choose valid asm.bits value due to arch of image.

  1. Do bootblock segment relocation:

    [0x00000000]> S $s-0x10000 0xf000:0x0000 0x10000 0x10000 bootblk rwx

where '$s' - variable, file size (see output of '???' command)

Then set this as 16bit segment

[0x00000000]> Sa x86 16

You can check result by typing just 'S' command.

You can also set DOS-like addressing notation:

[0x00000000]> e asm.segoff=true
[0000:0000]>
  1. go to 0xf000:0xfff0, where BIOS starts

'[0000:0000]> s 0xf000:0xfff0'

  1. Disassembly

    [f000:fff0]> pd 1
    f000:fff0 e908ff0000 jmp dword 0x10fefd

While here opcode is 'e908ff' and all, so this is jmp f000:fefb.

Same for f000:fefb

[f000:fefb]> pd 1
f000:fefb      e913fd662e     jmp dword 0x2e76fc13

Which should be
f000:fefb e913fd jmp f000:fc11

Version information should be the same in all commands

Having build time and commit info is important. Also, we should display all this information in one line

$ r2 -v
radare2 0.9.5git @ darwin-little-x86-64 build 2013-04-03
commit: 240ff7da71c37010d3f2a4b5a080ef33bad00e7f
$ rasm2 -v
rasm2 v0.9.5git
$ rabin2 -v
rabin2 v0.9.5git

Handle 8-chars sections names in PE and TE

See this code

struct r_bin_pe_section_t* PE_(r_bin_pe_get_sections)(struct PE_(r_bin_pe_obj_t)* bin) {
  struct r_bin_pe_section_t *sections = NULL;
  PE_(image_section_header) *shdr = bin->section_header;
  int i, sections_count = bin->nt_headers->file_header.NumberOfSections;

  if ((sections = malloc((sections_count + 1) * sizeof(struct r_bin_pe_section_t))) == NULL) {
    perror ("malloc (sections)");
    return NULL;
  }
  for (i = 0; i < sections_count; i++) {
    memcpy (sections[i].name, shdr[i].Name, PE_IMAGE_SIZEOF_SHORT_NAME);
    sections[i].name[PE_IMAGE_SIZEOF_SHORT_NAME-1] = '\0';
    sections[i].rva = shdr[i].VirtualAddress;
    sections[i].size = shdr[i].SizeOfRawData;
    sections[i].vsize = shdr[i].Misc.VirtualSize;
    sections[i].offset = shdr[i].PointerToRawData;
    sections[i].flags = shdr[i].Characteristics;
    sections[i].last = 0;
  }
  sections[i].last = 1;
  return sections;
}

where you have sections[i].name[PE_IMAGE_SIZEOF_SHORT_NAME-1] = '\0'; but for 8-chars section name it produce wrong result, e.g. for '_TEXT_RE'

rasm2 buffer overflow

$ radare2 -v
radare2 0.9 @ linux-little-x86
$ cat /etc/_-release | grep -i _name
PRETTY_NAME="Ubuntu precise (12.04.1 LTS)"
$ python -c 'print "f"_40000' > /tmp/zzzz
$ rasm2 -a armthumb -b 32 -f /tmp/zzzz
WARNING: cannot set asm backend to 32 bits
*** buffer overflow detected ***: rasm2 terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x45)[0x45f045]
/lib/i386-linux-gnu/libc.so.6(+0x102e1a)[0x45de1a]
/lib/i386-linux-gnu/libc.so.6(+0x10214d)[0x45d14d]
...

Cygwin: bulding errors - meta bug

Cygwin, Windows 7 x64 box

cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o sys.o sys.c
sys.c:1:0: warning: -fPIC ignored for target (all code is position independent)
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock.h:36:0,
                 from /cygdrive/d/Work/radare2/libr/include/r_types.h:28,
                 from sys.c:5:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types.      This can cause runtime problems with W32 sockets"
sys.c: In function 'r_sys_backtrace':
sys.c:100:2: warning: #warning TODO: r_sys_bt : unimplemented
sys.c: In function 'r_sys_getdir':
sys.c:210:2: warning: implicit declaration of function '_getcwd'
sys.c:210:14: warning: initialization makes pointer from integer without a cast
sys.c: At top level:
sys.c:140:13: warning: 'signal_handler' defined but not used
sys.c:152:12: warning: 'checkcmd' defined but not used
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o buf.o buf.c
buf.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o w32-sys.o w32-sys.c
w32-sys.c:1:0: warning: -fPIC ignored for target (all code is position independent)
w32-sys.c:6:19: fatal error: tchar.h: No such file or directory
compilation terminated.
/cygdrive/d/Work/radare2/libr/../global.mk:43: recipe for target `w32-sys.o' failed
make[4]: *** [w32-sys.o] Error 1
make[4]: Leaving directory `/cygdrive/d/Work/radare2/libr/util'
Makefile:33: recipe for target `util' failed
make[3]: *** [util] Error 2
make[3]: Leaving directory `/cygdrive/d/Work/radare2/libr'
Makefile:23: recipe for target `all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory `/cygdrive/d/Work/radare2/libr'
Makefile:26: recipe for target `libr' failed
make[1]: *** [libr] Error 2
make[1]: Leaving directory `/cygdrive/d/Work/radare2'
Makefile:17: recipe for target `all' failed
make: *** [all] Error 2

Find asm in r2 does not seem to update found count

[0x0b700000]> e io.va=0
[0x080483d0]> /a pop eax; ret;
[# ]^C0x0cb7e190 < 0xffffffffffffffff hits = 0

hits: 0
hit1_0
hit1_1
hit1_2
hit1_3
hit1_4

is this what is supposed to happen? I would expect hits to increase...

Error analyzing long nop

GCC constructs monster nops to reduce cpu cache used and speedup code caching. But looks like some of them are wrongly analyzed.

[0x00404a88]> e asm.size=true
[0x00404a88]> e asm.nbytes=12
[0x00404a88]> pd 1 @ 0x00404ab4 
          0x00404ab4  0     662e0f1f840000000000             o16 nop [cs:rax+rax+0x0]           
[0x00404a88]> ao 1 @ 0x00404ab4 
Oops at 0x00404ab4 (66 2e 0f ...)

request: colorful arrows

it would be better if the arrows in 'pd' would have colors. it will be more readable (or viewable ;p).

sys.c:34:2: error: too few arguments to function 'r_sandbox_open' /cygdrive/d/Work/radare2/libr/include/r_util.h:578:11: note: declared here

Under latest cygwin on Windows 7x64 box

$ make
make libr
make[1]: Entering directory `/cygdrive/d/Work/radare2'
cd libr && make all
make[2]: Entering directory `/cygdrive/d/Work/radare2/libr'
Makefile:23: warning: overriding recipe for target `all'
config.mk:149: warning: ignoring old recipe for target `all'
make util hash socket
make[3]: Entering directory `/cygdrive/d/Work/radare2/libr'
Makefile:23: warning: overriding recipe for target `all'
config.mk:149: warning: ignoring old recipe for target `all'
DIR util
cd util ; make
make[4]: Entering directory `/cygdrive/d/Work/radare2/libr/util'
../rules.mk:36: warning: overriding recipe for target `all'
../config.mk:149: warning: ignoring old recipe for target `all'
../rules.mk:63: warning: overriding recipe for target `libr_util.'
../rules.mk:41: warning: ignoring old recipe for target `libr_util.'
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o mem.o mem.c
mem.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o pool.o pool.c
pool.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o num.o num.c
num.c:1:0: warning: -fPIC ignored for target (all code is position independent)
num.c: In function 'r_num_get':
num.c:95:3: warning: 'I' flag used with '%x' gnu_scanf format
num.c:95:3: warning: format '%I64x' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:95:3: warning: 'I' flag used with '%x' gnu_scanf format
num.c:95:3: warning: format '%I64x' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:102:4: warning: 'I' flag used with '%x' gnu_scanf format
num.c:102:4: warning: format '%I64x' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:102:4: warning: 'I' flag used with '%x' gnu_scanf format
num.c:102:4: warning: format '%I64x' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:105:4: warning: 'I' flag used with '%o' gnu_scanf format
num.c:105:4: warning: format '%I64o' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:105:4: warning: 'I' flag used with '%o' gnu_scanf format
num.c:105:4: warning: format '%I64o' expects type 'unsigned int *', but argument 3 has type 'long long unsigned int *'
num.c:115:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:115:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:119:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:119:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:123:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:123:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:127:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
num.c:127:4: warning: format '%I64d' expects type 'int *', but argument 3 has type 'long long unsigned int *'
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o str.o str.c
str.c:1:0: warning: -fPIC ignored for target (all code is position independent)
str.c: In function 'r_str_bits':
str.c:80:5: warning: array subscript has type 'char'
str.c: In function 'r_str_case':
str.c:161:4: warning: array subscript has type 'char'
str.c:164:4: warning: array subscript has type 'char'
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o hex.o hex.c
hex.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o file.o file.c
file.c:1:0: warning: -fPIC ignored for target (all code is position independent)
file.c: In function 'r_file_temp':
file.c:320:2: warning: 'I' flag used with '%x' gnu_printf format
file.c:320:2: warning: format '%I64x' expects type 'unsigned int', but argument 6 has type 'long long unsigned int'
file.c:320:2: warning: 'I' flag used with '%x' gnu_printf format
file.c:320:2: warning: format '%I64x' expects type 'unsigned int', but argument 6 has type 'long long unsigned int'
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o alloca.o alloca.c
alloca.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o range.o range.c
range.c:1:0: warning: -fPIC ignored for target (all code is position independent)
range.c: In function 'r_range_percent':
range.c:288:2: warning: unknown conversion type character 'I' in format
range.c:288:2: warning: too many arguments for format
range.c:288:2: warning: unknown conversion type character 'I' in format
range.c:288:2: warning: too many arguments for format
range.c:295:2: warning: unknown conversion type character 'I' in format
range.c:295:2: warning: too many arguments for format
range.c:295:2: warning: unknown conversion type character 'I' in format
range.c:295:2: warning: too many arguments for format
range.c: In function 'r_range_list':
range.c:305:3: warning: unknown conversion type character 'I' in format
range.c:305:3: warning: unknown conversion type character 'I' in format
range.c:305:3: warning: too many arguments for format
range.c:305:3: warning: unknown conversion type character 'I' in format
range.c:305:3: warning: unknown conversion type character 'I' in format
range.c:305:3: warning: too many arguments for format
range.c:306:3: warning: unknown conversion type character 'I' in format
range.c:306:3: warning: unknown conversion type character 'I' in format
range.c:306:3: warning: format '%I64d' expects type 'int', but argument 2 has type 'long long unsigned int'
range.c:306:3: warning: too many arguments for format
range.c:306:3: warning: unknown conversion type character 'I' in format
range.c:306:3: warning: unknown conversion type character 'I' in format
range.c:306:3: warning: format '%I64d' expects type 'int', but argument 2 has type 'long long unsigned int'
range.c:306:3: warning: too many arguments for format
range.c:309:2: warning: format '%I64d' expects type 'int', but argument 3 has type 'long long unsigned int'
range.c:309:2: warning: format '%I64d' expects type 'int', but argument 3 has type 'long long unsigned int'
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o log.o log.c
log.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o prof.o prof.c
prof.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o cache.o cache.c
cache.c:1:0: warning: -fPIC ignored for target (all code is position independent)
cc -c -MD   -fPIC -g -Wall -DWWWROOT=\"/usr/local/lib/radare2/0.9.3git/www\" -I/cygdrive/d/Work/radare2/libr/include -o sys.o sys.c
sys.c:1:0: warning: -fPIC ignored for target (all code is position independent)
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock.h:36:0,
                 from /cygdrive/d/Work/radare2/libr/include/r_types.h:28,
                 from sys.c:5:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types.      This can cause runtime problems with W32 sockets"
sys.c: In function 'r_sys_truncate':
sys.c:34:2: error: too few arguments to function 'r_sandbox_open'
/cygdrive/d/Work/radare2/libr/include/r_util.h:578:11: note: declared here
sys.c: In function 'r_sys_backtrace':
sys.c:100:2: warning: #warning TODO: r_sys_bt : unimplemented
sys.c: In function 'r_sys_getdir':
sys.c:210:2: warning: implicit declaration of function '_getcwd'
sys.c:210:14: warning: initialization makes pointer from integer without a cast
sys.c: At top level:
sys.c:140:13: warning: 'signal_handler' defined but not used
sys.c:152:12: warning: 'checkcmd' defined but not used
/cygdrive/d/Work/radare2/libr/../global.mk:43: recipe for target `sys.o' failed
make[4]: *** [sys.o] Error 1
make[4]: Leaving directory `/cygdrive/d/Work/radare2/libr/util'
Makefile:33: recipe for target `util' failed
make[3]: *** [util] Error 2
make[3]: Leaving directory `/cygdrive/d/Work/radare2/libr'
Makefile:23: recipe for target `all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory `/cygdrive/d/Work/radare2/libr'
Makefile:26: recipe for target `libr' failed
make[1]: *** [libr] Error 2
make[1]: Leaving directory `/cygdrive/d/Work/radare2'
Makefile:17: recipe for target `all' failed

dbg:// does not work as expected

i cannot set breakpoints, nor get symbols (with 'is') and generally a lot of things are broken with dbg:// but with -d everything is ok.

this is how i run it: r2 dbg:///usr/bin/ls

rarc2

Hi,

Anyone can you explain why rarc2 is dismissed?

There is any way to do the command: echo 'main@global(,64){printf("hello world\n");}' | rarc2 -s > hello.S in the radare2?

Thanks in advance,
Simon

Visual mode freezed

reproduce it with:

% r2 /usr/bin/ls
press 'V'
press 'v'
press again 'v'

after this i can't do anything, even 'q' does nothing.

gdb debugging

Need more testing and ease to use.

$ r2 -a arm -D gdb gdb://host:port

(maybe we should just handle this with -d when gdb:// is used)

If debugger is not available say so This build on sparc64 was configured with no debugger:

r2 -d /bin/ls

Cannot use 'sparc' anal plugin.
asm.arch: cannot find (sparc)
Cannot use 'sparc' anal plugin.
r_syscall_setup: Unknown os/arch 'openbsd'/'sparc'
asm.arch: Cannot setup syscall os/arch for 'sparc'
e asm.bits: Cannot set value, no plugins defined yet
r_syscall_setup: Unknown os/arch 'openbsd'/'sparc'
asm.os: Cannot setup syscall os/arch for 'openbsd'
e asm.bits: Cannot set value, no plugins defined yet
asm.arch: cannot find (sparc)
Cannot use 'sparc' anal plugin.
r_syscall_setup: Unknown os/arch 'openbsd'/'sparc'
asm.arch: Cannot setup syscall os/arch for 'sparc'
Cannot open file.

Can't we just say "this version of radare2 was not built with the debugger". And exit.

P.S. Moved from http://rada.re/y/bugs.php?bugs&s=view&id=40

flags command - add comments support [feature request]

Idea is to use such syntax:

f name 12 @ 33 "comment" ; set flag 'name' with length 12 at offset 13 and 'comment'
f name 12 33 "comment" ; same as above
f+name 12 33 "comment" ; like above but creates new one if doesnt exist

And show these comments in analysis output then.

And change for bindings api too, to support comments.

Macro r_magic_free uses incompatible types in conditional operator

In [r_magic.h:22] the use of the conditional operator does not typecheck:

The function magic_close has return type void, but x is of a pointer type. Yet the C standard requires that the second and third argument of the
conditional operator ?: are both void or compatible pointer types (there are
several other cases, see 6.5.15 of the C Standard). Failing this, the compiler
may produce arbitrary code.

The best way to fix this is likely changing the definition to { if(x) {magic_close(x)} }.

Best,
Michael

[r_magic.h:22] https://github.com/radare/radare2/blob/master/libr/include/r_magic.h#L22

libr_parse.so: undefined reference to `r_flag_get_i'

$ git clone https://github.com/radare/radare2.git
....
....
$ cd radare2
$ sys/install.sh
...
...
...
 - python: No python-config foundno
 - perl: no
 - ruby: no
 - lua: no
 - go: no
 - java: no
 - guile: no
 - php5: /usr/bin/valabind-cc: 1: /usr/bin/valabind-cc: php-config: not found
Package libpng was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpng.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpng' found
/usr/bin/valabind-cc: 1: /usr/bin/valabind-cc: php-config: not found
no
 - node-ffi: no
 - ctypes: no
 - cxx: yes (g++)
 - valac: yes
Supported langs:
 - cxx
 - valac
...
...
...
/usr/bin/ld: warning: libr_flags.so.0.9.3git, needed by /home/nop/data/dev/radare2/libr/parse/libr_parse.so, not found (try using -rpath or -rpath-link)
/home/nop/data/dev/radare2/libr/parse/libr_parse.so: undefined reference to `r_flag_get_i'
collect2: ld returned 1 exit status
make[3]: *** [rasm2] Error 1
make[2]: *** [all] Error 1
make[1]: *** [binr] Error 2
make: *** [all] Error 2

Build error /usr/lib/libr_asm.so.0.9.1git: undefined reference to `r_str_subchr'

from 'clean' clone of repo:

DIR r_print
make libr_print.so libr_print.a
make[4]: Entering directory /home/xvilka/radare2/libr/print' cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -o print.o print.c cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -o format.o format.c cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -o date.o date.c cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -o disasm.o disasm.c cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -o seven.o seven.c cc -shared -o libr_print.so -Wl,-soname=libr_print.so.0.9.1git print.o format.o date.o disasm.o seven.o -lr_cons -lr_util -lr_asm -lr_anal -L/home/xvilka/radare2/libr/cons -L/home/xvilka/radare2/libr/util -L/home/xvilka/radare2/libr/asm -L/home/xvilka/radare2/libr/anal -fPIC STRIP libr_print.so make[4]: Leaving directory/home/xvilka/radare2/libr/print'
make[4]: Entering directory /home/xvilka/radare2/libr/print/t' cc -c -MD -fPIC -g -Wall -DHAVE_LIB_GMP=1 -D__UNIX__=1 -I/home/xvilka/radare2/libr/include -DVERSION=\"0.9.1git\" -o hex.o hex.c cc hex.o -L.. -o hex -lr_cons -lr_print -lr_util -L/home/xvilka/radare2/libr/cons -L/home/xvilka/radare2/libr/print -L/home/xvilka/radare2/libr/util -fPIC -L/home/xvilka/radare2/libr/..//libr/cons -L/home/xvilka/radare2/libr/..//libr/print -L/home/xvilka/radare2/libr/..//libr/util -lr_cons -lr_print -lr_util /usr/lib/libr_asm.so.0.9.1git: undefined reference tor_str_subchr'
collect2: ld returned 1 exit status
make[4]: *** [hex] Error 1
make[4]: Leaving directory /home/xvilka/radare2/libr/print/t' make[3]: *** [all] Error 2 make[3]: Leaving directory/home/xvilka/radare2/libr/print'
make[2]: *** [libs] Error 1
make[2]: Leaving directory /home/xvilka/radare2/libr' make[1]: *** [libr] Error 2 make[1]: Leaving directory/home/xvilka/radare2'
make: *** [all] Error 2

install-python is broken

I used sys/python.sh but I'm getting the following error, also 'python/_r_core.so' is not created.

cd .. ; make install-python
make[1]: Entering directory /home/oblique/pkg/radare2/r2-bindings' [ -e python/_r_core.so ] && true make[1]: *** [install-python] Error 1 make[1]: Leaving directory/home/oblique/pkg/radare2/r2-bindings'
make: *** [install] Error 2

Broken formatting of radiff2 -C command

Used to run radiff2 -C hello1 hello2 (two hello words) and have output with broken formatting, because of long symbols name. Please add autoresize option for such cases:

fcn.0000034 0x806 | MATCH ...
some_very_long_symbol_name | NEW

Sparc64 needs a register profile

15:19 < vext01> p/debug_native.c: In function 'r_debug_native_continue':
15:19 < vext01> p/debug_native.c:303: warning: cast from pointer to integer of different size
15:19 < vext01> p/debug_native.c:796:2: warning: #warning NO DEBUGGER REGISTERS PROFILE DEFINED
15:19 < vext01> p/debug_native.c: In function 'r_debug_native_reg_read':

Reply 1: I have no access to any sparc64 box, i should think that you are testing in OpenBSD. Ping me by irc if you need some help to cook this patch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.