Radare2 Disassembler Как организовать визуальные панели (V!)?

Я хотел бы использовать Radare2, чтобы узнать, как C собирается в сборку, но у меня проблемы с компоновкой. Я думаю, что V! Режим очень удобен, так как вы можете наблюдать за обновлением регистров, когда указатель команд перемещается по программе, но я не понимаю структуру.

Это пример их макета, который я хотел бы:

Кажется, что когда я добавляю окно (например, Stack или Registers на этой фотографии), оно появляется за кадром, и мне приходится пытаться закрывать разные окна и разбивать их до тех пор, пока макет не станет на свое место. Есть ли простой способ изменить именно то, что есть в каждом окне?

Я знаю, что "X" закрывает окно, "z" переключает текущее окно вперед, а "-" / "|" разбить окно.

Я попытался посмотреть на помощь, но не могу понять какие-либо другие команды, связанные с этой проблемой.

0 ответов

ОКРУЖАЮЩАЯ СРЕДА

  • radare2: 4.2.0-git 23712 @ linux-x86-64 git.4.1.1-97-g5a48a4017 коммит: 5a48a401787c0eab31ecfb48bebf7cdfccb66e9b сборка: 2020-01-09__21:44:51
  • система: Ubuntu 18.04.3 LTS

РЕШЕНИЕ

  • Эту проблему можно решить разными способами, и это лишь один из примеров.
  • Чтобы создать макет, который вы описали, измените команды, показанные в макете по умолчанию, следующим образом:

    1. Щелкните внутри / выберите панель, которую хотите изменить.
    2. Щелкните правой кнопкой мыши на панели и выберите новую команду или
    3. Введите "e", затем введите новую команду. (Пример: регистры = dr)
  • Дополнительную документацию, показанную ниже, можно найти здесь: https://radare.gitbooks.io/radare2book/visual_mode/visual_panels.html

|Visual Ascii Art Panels:
| |      split the current panel vertically
| -      split the current panel horizontally
| :      run r2 command in prompt
| _      start the hud input mode
| ?      show this help
| ??     show the user-friendly hud
| !      run r2048 game
| .      seek to PC or entrypoint
| *      show pseudo code/r2dec in the current panel
| /      highlight the keyword
| (      toggle snow
| &      toggle cache
| [1-9]  follow jmp/call identified by shortcut (like ;[1])
| ' '    (space) toggle graph / panels
| tab    go to the next panel
| a      toggle auto update for decompiler
| b      browse symbols, flags, configurations, classes, ...
| c      toggle cursor
| C      toggle color
| d      define in the current address. Same as Vd
| D      show disassembly in the current panel
| e      change title and command of current panel
| g      go/seek to given offset
| G      show graph in the current panel
| i      insert hex
| hjkl   move around (left-down-up-right)
| J      scroll panels down by page
| K      scroll panels up by page
| H      scroll panels left by page
| L      scroll panels right by page
| m      select the menu panel
| M      open new custom frame
| nN     create new panel with given command
| pP     seek to next or previous scr.nkey
| q      quit, back to visual mode
| r      toggle jmphints/leahints
| sS     step in / step over
| t      rotate related commands in a panel
| uU     undo / redo seek
| w      start Window mode
| V      go to the graph mode
| X      close current panel
| z      swap current panel with the first one

ПРИМЕР

Открытые визуальные панели

user@host:~$ r2 /bin/ls
[0x00005850]> aaaa
...
[0x00005850]> s main
[0x00003e90]> V!

Вид по умолчанию после открытия визуальных панелей

Выберите верхнюю правую панель, затем щелкните правой кнопкой мыши и выберите регистры.

Выберите нижнюю правую панель, затем щелкните правой кнопкой мыши и выберите стек

Окончательный вид

Другие вопросы по тегам