The Official Radare2 Book | страница 61



| o* list opened files in r2 commands

| o. [len] open a malloc://[len] copying the bytes from current offset

| o= list opened files (ascii-art bars)

| ob[?] [lbdos] [...] list opened binary files backed by fd

| oc [file] open core file, like relaunching r2

| of [file] open file and map it at addr 0 as read-only

| oi[-|idx] alias for o, but using index instead of fd

| oj[?] list opened files in JSON format

| oL list all IO plugins registered

| om[?] create, list, remove IO maps

| on [file] 0x4000 map raw file at 0x4000 (no r_bin involved)

| oo[?] reopen current file (kill+fork in debugger)

| oo+ reopen current file in read-write

| ood[r] [args] reopen in debugger mode (with args)

| oo[bnm] [...] see oo? for help

| op [fd] prioritize given fd (see also ob)

| ox fd fdx exchange the descs of fd and fdx and keep the mapping

Prepare a simple layout:

>$ rabin2 -l /bin/ls

>[Linked libraries]

>libselinux.so.1

>librt.so.1

>libacl.so.1

>libc.so.6


>4 libraries

Map a file:

[0x00001190]> o /bin/zsh 0x499999

List mapped files:

[0x00000000]> o

- 6 /bin/ls @ 0x0 ; r

- 10 /lib/ld-linux.so.2 @ 0x100000000 ; r

- 14 /bin/zsh @ 0x499999 ; r

Print hexadecimal values from /bin/zsh:

[0x00000000]> px @ 0x499999

Unmap files using the o- command. Pass the required file descriptor to it as an argument:

[0x00000000]> o-14

You can also view the ascii table showing the list of the opened files:

[0x00000000]> ob=

One of the key features of radare2 is displaying information in many formats. The goal is to offer a selection of display choices to interpret binary data in the best possible way.

Binary data can be represented as integers, shorts, longs, floats, timestamps, hexpair strings, or more complex formats like C structures, disassembly listings, decompilation listing, be a result of an external processing...

Below is a list of available print modes listed by p?:

[0x00005310]> p?

|Usage: p[=68abcdDfiImrstuxz] [arg|len] [@addr]

| p[b|B|xb] [len] ([S]) bindump N bits skipping S bytes

| p[iI][df] [len] print N ops/bytes (f=func) (see pi? and pdi)

| p[kK] [len] print key in randomart (K is for mosaic)

| p-[?][jh] [mode] bar|json|histogram blocks (mode: e?search.in)