* Remove graph.offset evar * db/cmd/cmd_visual: Set `e asm.offset=false` * Use `rz_config_set_b` when setting `asm.offset`
242 lines
8.2 KiB
Text
242 lines
8.2 KiB
Text
NAME=panels VH/VHH
|
||
FILE==
|
||
CMDS=<<EOF
|
||
VH
|
||
VHH
|
||
EOF
|
||
EXPECT=<<EOF
|
||
| ? full help
|
||
| ! enter panels
|
||
| a code analysis
|
||
| b browse mode
|
||
| c toggle cursor
|
||
| d debugger / emulator
|
||
| e toggle configurations
|
||
| i insert / write
|
||
| m moving around (seeking)
|
||
| p print commands and modes
|
||
| v view management
|
||
| ? show visual help menu
|
||
| ?? show this help
|
||
| $ set the program counter to the current offset + cursor
|
||
| & rotate asm.bits between 8, 16, 32 and 64 applying hints
|
||
| % in cursor mode finds matching pair, otherwise toggle autoblocksz
|
||
| ^ seek to the beginning of the function
|
||
| ! enter into the visual panels mode
|
||
| TAB switch to the next print mode (or element in cursor mode)
|
||
| _ enter the flag/comment/functions/.. hud (same as VF_)
|
||
| = set cmd.vprompt (top row)
|
||
| | set cmd.cprompt (right column)
|
||
| . seek to program counter
|
||
| # toggle decompiler comments in disasm (see pdd* from jsdec)
|
||
| \ toggle visual split mode
|
||
| " toggle the column mode (uses pC..)
|
||
| / in cursor mode search in current block
|
||
| ) toggle emu.str
|
||
| :cmd run rizin command
|
||
| ;[-]cmt add/remove comment
|
||
| 0 seek to beginning of current function
|
||
| [1-9] follow jmp/call identified by shortcut (like ;[1])
|
||
| ,file add a link to the text file
|
||
| /*+-[] change block size, [] = resize hex.cols
|
||
| <,> seek aligned to block size (in cursor slurp or dump files)
|
||
| a/A (a)ssemble code, visual (A)ssembler
|
||
| b browse evals, symbols, flags, evals, classes, ...
|
||
| B toggle breakpoint
|
||
| c/C toggle (c)ursor and (C)olors
|
||
| d[f?] define function, data, code, ..
|
||
| D enter visual diff mode (set diff.from/to)
|
||
| f/F set/unset or browse flags. f- to unset, F to browse, ..
|
||
| hjkl move around (left-down-up-right)
|
||
| HJKL select in cursor mode (left-down-up-right)
|
||
| i insert hex or string (in hexdump) use tab to toggle
|
||
| I insert hexpair block
|
||
| mK/'K mark/go to Key (any key)
|
||
| n/N seek next/prev function/flag/hit (scr.nkey)
|
||
| g go/seek to given offset (g[g/G]<enter> to seek begin/end of file)
|
||
| o/O rotate between different formats (next/prev)
|
||
| p/P rotate print modes (hex, disasm, debug, words, buf)
|
||
| q back to rizin shell
|
||
| r toggle call/jmp/lea hints
|
||
| R changes the theme or randomizes colors if scr.randpal option is true.
|
||
| sS step / step over
|
||
| tT tt new tab, t[1-9] switch to nth tab, t= name tab, t- close tab
|
||
| uU undo/redo seek
|
||
| v visual function/vars code analysis menu
|
||
| V (V)iew interactive ascii art function graph (agfv)
|
||
| wW seek cursor to next/prev word
|
||
| xX show xrefs/refs of current function from/to data/code
|
||
| yY copy and paste selection
|
||
| Enter follow address of jump/call
|
||
Function Keys: (See 'e key.'), defaults to
|
||
| F2 toggle breakpoint
|
||
| F4 run to cursor
|
||
| F7 single step
|
||
| F8 step over
|
||
| F9 continue
|
||
EOF
|
||
RUN
|
||
|
||
NAME=panels vl/vs
|
||
FILE==
|
||
CMDS=<<EOF
|
||
vl asd
|
||
e scr.layout
|
||
vs tyui
|
||
e scr.layout
|
||
EOF
|
||
EXPECT=<<EOF
|
||
asd
|
||
tyui
|
||
EOF
|
||
RUN
|
||
|
||
NAME=visual_dw
|
||
FILE==
|
||
CMDS=<<EOF
|
||
V c10dwq @e:scr.interactive=true > /dev/null
|
||
pd 20~dword?
|
||
EOF
|
||
EXPECT=<<EOF
|
||
10
|
||
EOF
|
||
RUN
|
||
|
||
NAME=Vc+cq
|
||
FILE==
|
||
CMDS=<<EOF
|
||
e scr.interactive=true
|
||
V c+cq
|
||
p8 1
|
||
EOF
|
||
EXPECT=<<EOF
|
||
01
|
||
EOF
|
||
RUN
|
||
|
||
NAME=visual hex scroll
|
||
FILE==
|
||
CMDS=<<EOF
|
||
e scr.interactive=true
|
||
e asm.arch=x86
|
||
e asm.bits=64
|
||
wx 4889e54889e5
|
||
V jq
|
||
s
|
||
EOF
|
||
EXPECT=<<EOF
|
||
0x10
|
||
EOF
|
||
RUN
|
||
|
||
NAME=visual op scroll
|
||
FILE==
|
||
CMDS=<<EOF
|
||
e asm.arch=x86
|
||
e asm.bits=64
|
||
e scr.interactive=true
|
||
wx 4889e54889e5
|
||
V pjq
|
||
s
|
||
EOF
|
||
EXPECT=<<EOF
|
||
0x3
|
||
EOF
|
||
RUN
|
||
|
||
NAME=visual hex pP scroll
|
||
FILE==
|
||
CMDS=<<EOF
|
||
e asm.arch=x86
|
||
e asm.bits=64
|
||
e scr.interactive=true
|
||
wx 4889e54889e5
|
||
V pPjq
|
||
s
|
||
EOF
|
||
EXPECT=<<EOF
|
||
0x10
|
||
EOF
|
||
RUN
|
||
|
||
NAME=visual noninteractive
|
||
FILE==
|
||
CMDS=<<EOF
|
||
e scr.interactive=false
|
||
V
|
||
v
|
||
EOF
|
||
EXPECT_ERR=<<EOF
|
||
ERROR: Visual mode requires scr.interactive=true.
|
||
ERROR: Panel mode requires scr.interactive=true.
|
||
EOF
|
||
RUN
|
||
|
||
NAME=initial Visual view
|
||
FILE=bins/elf/ls
|
||
CMDS=<<EOF
|
||
e scr.interactive=true
|
||
e scr.columns=80
|
||
e scr.rows=12
|
||
< q; V
|
||
echo
|
||
EOF
|
||
EXPECT=<<EOF
|
||
[?25l[0;0H[0m[0x00005ae0 [Xadvc]0 11% 192 bins/elf/ls]> xc @ entry0
|
||
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF comment
|
||
0x00005ae0 f30f 1efa 31ed 4989 d15e 4889 e248 83e4 ....1.I..^H..H.. ; entry0
|
||
0x00005af0 f050 544c 8d05 660c 0100 488d 0def 0b01 .PTL..f...H.....
|
||
0x00005b00 0048 8d3d 68e5 ffff ff15 0ac3 0100 f490 .H.=h...........
|
||
0x00005b10 488d 3d51 c701 0048 8d05 4ac7 0100 4839 H.=Q...H..J...H9
|
||
0x00005b20 f874 1548 8b05 96c1 0100 4885 c074 09ff .t.H......H..t..
|
||
0x00005b30 e00f 1f80 0000 0000 c30f 1f80 0000 0000 ................
|
||
0x00005b40 488d 3d21 c701 0048 8d35 1ac7 0100 4829 H.=!...H.5....H)
|
||
0x00005b50 fe48 c1fe 0348 89f0 48c1 e83f 4801 c648 .H...H..H..?H..H
|
||
0x00005b60 d1fe 7414 488b 053d c401 0048 85c0 7408 ..t.H..=...H..t.
|
||
0x00005b70 ffe0 660f 1f44 0000 c30f 1f80 0000 0000 ..f..D.......... [12;75H9.2%[?25h[0m[2J
|
||
[0;0H
|
||
EOF
|
||
RUN
|
||
|
||
NAME=initial Visual function graph view
|
||
FILE=malloc://2
|
||
ARGS=-a x86 -b 64
|
||
CMDS=<<EOF
|
||
e scr.interactive=true
|
||
e scr.columns=80
|
||
e scr.rows=12
|
||
e asm.offset=false
|
||
aF
|
||
< qq; VV
|
||
echo
|
||
EOF
|
||
EXPECT=<<EOF
|
||
[0m[2J
|
||
[0;0H[0x00000000]> 0x0 # fcn.00000000(); [0m[2J
|
||
[0;0H[0x00000000]> 0x0 # fcn.00000000();
|
||
|
||
|
||
|
||
.---------------------------.
|
||
| [0x0] |
|
||
| fcn.00000000(); |
|
||
| add byte [rax], al |
|
||
`---------------------------' [0m[2J
|
||
[0;0H[0x00000000]> 0x0 # fcn.00000000(); [0m[2J
|
||
[0;0H[0x00000000]> 0x0 # fcn.00000000();
|
||
|
||
|
||
|
||
.---------------------------.
|
||
| [0x0] |
|
||
| fcn.00000000(); |
|
||
| add byte [rax], al |
|
||
`---------------------------' [?25l[?25l[0;0H[0m[0x00000000 [Xadvc]0 0% 192 malloc://2]> xc @ fcn.00000000
|
||
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF comment
|
||
0x00000000 0000 ffff ffff ffff ffff ffff ffff ffff ................ ; fcn.000[0J
|
||
[0m
|
||
0x00000010 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000020 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000030 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000040 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000050 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000060 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000070 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000080 ffff ffff ffff ffff ffff ffff ffff ffff ................
|
||
0x00000090 ffff ffff ffff ffff ffff ffff ffff ffff ................ [?25h[0m[2J
|
||
[0;0H
|
||
EOF
|
||
RUN
|