mirror of
https://github.com/radareorg/radare2
synced 2026-08-22 20:23:32 -04:00
188 lines
4.9 KiB
Groff
188 lines
4.9 KiB
Groff
.Dd Aug 22, 2026
|
|
.Dt RAX2 1
|
|
.Sh NAME
|
|
.Nm rax2
|
|
.Nd Radare2 Base Converter
|
|
.Sh SYNOPSIS
|
|
.Nm rax2
|
|
.Op Fl abcCdDeEfFhHijkKnoqrsStuUvwxXzZ
|
|
.Op [expr] ...
|
|
.Sh DESCRIPTION
|
|
A versatile calculator for numerical base conversions, string encoding/decoding, and data representation within Radare2, supporting C-string encoding, hexpairs, Base64, and other formats.
|
|
.Pp
|
|
The most common numerical bases include binary (base 2) for direct machine code
|
|
interaction, hexadecimal (base 16) for memory addresses and compact data
|
|
representation, and decimal (base 10) for human-readable calculations and
|
|
interpretations.
|
|
.Sh OPTIONS
|
|
.Bl -tag -width Fl
|
|
.It Fl a
|
|
Show ASCII table
|
|
.It Fl b Ar base
|
|
Force output mode (numeric base)
|
|
.Pp
|
|
f floating point
|
|
2 binary
|
|
3 ternary
|
|
8 octal
|
|
10 decimal
|
|
16 hexadecimal
|
|
.Pp
|
|
When used with
|
|
.Fl s
|
|
and
|
|
.Fl e ,
|
|
select the word size in bits for endian-swapping hex input. Valid word sizes
|
|
are 8, 16, 32, and 64 bits.
|
|
.It Fl c
|
|
Show hexadecimal C string from integer value
|
|
.It Fl C
|
|
Dump stdin to C array in stdout (xxd replacement)
|
|
.It Fl d
|
|
Print the result in decimal (base 10)
|
|
.It Fl D
|
|
Decode the input data using base64
|
|
.It Fl e
|
|
Swap endianness. With
|
|
.Fl s ,
|
|
requires
|
|
.Fl b
|
|
to specify the word size.
|
|
.It Fl E
|
|
Encode the input data using base64
|
|
.It Fl f
|
|
Interpret the input number as a 32bit dword and display it using IEEE 754
|
|
standard for floating point arithmetic
|
|
.It Fl F
|
|
Read C strings from stdin and output in hexpairs. Useful to load shellcodes
|
|
.It Fl h
|
|
Show usage help message
|
|
.It Fl H
|
|
Convert a string into a hash
|
|
.It Fl i
|
|
Convert LONG to/from IP ADDRESS
|
|
.It Fl j
|
|
Show the output in json format, the same as the r2 `?j 0x804` command
|
|
.It Fl k
|
|
Keep the same base as the input data
|
|
.It Fl K
|
|
Show randomart key asciiart for values or hexpairs
|
|
.It Fl n
|
|
Append newline to the decoded output for human friendliness
|
|
.It Fl o
|
|
Convert from octal string to char (rax2 -o 162 62)
|
|
.It Fl q
|
|
Be quiet. Show less information or drop the superfluous details in the output
|
|
.It Fl r
|
|
Show the same output as the r2's `? 0x804` command.
|
|
When combined with -S (-rS) it will print r2 commands to write the actual binary into radare2
|
|
.It Fl s
|
|
Convert from hex pairs string to character (rax2 \-s 43 4a 50)
|
|
.It Fl S
|
|
Convert from character to hex string (rax2 \-S C J P)
|
|
.It Fl t
|
|
Convert epoch timestamp to human readable date format
|
|
.It Fl u
|
|
Convert given value to human readable units format
|
|
.It Fl v
|
|
Show version information
|
|
.It Fl w
|
|
Display the result as 16bit signed integer value
|
|
.It Fl x
|
|
Show hexpairs from integer value
|
|
.It Fl X
|
|
Convert a bit stream (an arbitrary sequence of 0 and 1 of any length) to
|
|
hexadecimal. The result can be larger than 64bits
|
|
.It Fl z
|
|
Convert from character string to binary (rax2 \-z hello)
|
|
.It Fl Z
|
|
Convert from binary string to string (rax2 \-Z 01000101)
|
|
.El
|
|
.Sh USAGE
|
|
Available variable types are:
|
|
.Pp
|
|
int \-> hex rax2 10
|
|
hex \-> int rax2 0xa
|
|
\-int \-> hex rax2 \-77
|
|
\-hex \-> int rax2 0xffffffb3
|
|
int \-> bin rax2 b30
|
|
int \-> ternary rax2 t42
|
|
bin \-> int rax2 1010d
|
|
ternary \-> int rax2 1010dt
|
|
float \-> hex rax2 3.33f
|
|
hex \-> float rax2 Fx40551ed8
|
|
oct \-> hex rax2 35o
|
|
hex \-> oct rax2 Ox12 (O is a letter)
|
|
bin \-> hex rax2 1100011b
|
|
hex \-> bin rax2 Bx63
|
|
ternary \-> hex rax2 212t
|
|
hex \-> ternary rax2 Tx23
|
|
raw \-> hex rax2 -S < /binfile
|
|
hex \-> raw rax2 -s 414141
|
|
.Sh EXAMPLES
|
|
With no arguments, rax2 reads values from stdin. You can pass one or more values
|
|
as arguments.
|
|
.Pp
|
|
$ rax2 33 0x41 0101b
|
|
0x21
|
|
65
|
|
0x5
|
|
.Pp
|
|
You can do 'unpack' hexpair encoded strings easily.
|
|
.Pp
|
|
$ rax2 \-s 41 42 43
|
|
ABC
|
|
.Pp
|
|
Swap the byte order of each 32-bit word in a hex stream:
|
|
.Pp
|
|
$ printf 1122334455667788 | rax2 \-esb 32 | rax2 \-S
|
|
4433221188776655
|
|
.Pp
|
|
It supports some math operations:
|
|
.Pp
|
|
$ rax2 1+1 "0x5*101b+5"
|
|
2
|
|
30
|
|
.Pp
|
|
Encode and decode binary file using base64:
|
|
.Pp
|
|
$ rax2 -E < /bin/ls > ls.b64
|
|
$ rax2 -D < ls.b64 > ls
|
|
.Pp
|
|
$ cmp /bin/ls ls && echo $?
|
|
0
|
|
.Pp
|
|
Use -z/-Z to convert between binary and string:
|
|
.Pp
|
|
$ rax2 -z hello
|
|
01101000011001010110110001101100011011110000000000000000
|
|
$ rax2 -Z 01101000011001010110110001101100011011110000000000000000
|
|
hello
|
|
.Pp
|
|
Hash strings:
|
|
.Pp
|
|
$ rax2 -H linux osx
|
|
linux: 0x5ccc1772
|
|
osx: 0x099bf94f
|
|
.Pp
|
|
Work with IP addresses:
|
|
.Pp
|
|
$ rax2 -i 127.0.0.1
|
|
0x0100007f
|
|
$ rax2 -i 0x0100007f
|
|
127.0.0.1
|
|
.Pp
|
|
It is a very useful tool for scripting, so you can read floating point values, or get the integer offset of a jump or a stack delta when analyzing programs.
|
|
.Pp
|
|
.Sh ENVIRONMENT
|
|
.Pp
|
|
rax2 does not use any environment variables.
|
|
.Sh SEE ALSO
|
|
.Pp
|
|
.Xr radare2(1)
|
|
.Sh WWW
|
|
.Pp
|
|
https://www.radare.org
|
|
.Sh AUTHORS
|
|
.Pp
|
|
pancake <pancake@nopcode.org>
|