rizin/test/db/cmd/cmd_afv
NOT XVilka cc87ff20e5
Expose constrained types to user and analysis (#6480)
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2026-06-12 02:36:35 +08:00

103 lines
1.5 KiB
Text

NAME=avr[rbs]- without function
FILE==
CMDS=<<EOF
afvr-*
afvs- 42
afvs- ulumulu
echo not segfaulted
EOF
EXPECT=<<EOF
not segfaulted
EOF
RUN
NAME=afvf for sp-vars
FILE=bins/elf/crackme0x00b
CMDS=<<EOF
s main
af
afvf
EOF
EXPECT=<<EOF
-0x00000068 var_68h: int32_t
-0x00000080 var_80h: int32_t
EOF
RUN
NAME=afvf for bp-vars
FILE=bins/elf/hello_world
CMDS=<<EOF
s main
af
afvf
EOF
EXPECT=<<EOF
-0x00000010 var_10h: int64_t
-0x00000018 var_18h: int64_t
-0x00000020 var_20h: int64_t
-0x00000024 var_24h: int64_t
-0x00000028 var_28h: int64_t
EOF
RUN
NAME=afv- *
FILE=bins/elf/vars-complex-x86_64-bp
CMDS=<<EOF
aa
s sym.varfunc
pdf~:1..4
echo
afv- *
pdf~:1..4
EOF
EXPECT=<<EOF
/ sym.varfunc(int64_t arg1);
| ; arg int64_t arg1 @ rdi
| ; var int64_t var_2ch @ stack - 0x2c
/ sym.varfunc();
| 0x0000115c push rbp
| 0x0000115d mov rbp, rsp
EOF
RUN
NAME=afvc read constraints and JSON (#315)
FILE=bins/elf/constr_type
CMDS=<<EOF
e analysis.types.constraint=true
aaa
s sym.range_small
afvc
afvc var_1ch
afvcj var_1ch
s sym.single_cond
afvc var_ch
EOF
EXPECT=<<EOF
var_1ch: > 0x0 && <= 0x9
> 0x0 && <= 0x9
[{"name":"var_1ch","constraints":"> 0x0 && <= 0x9","conditions":[{"cond":"gt","value":0},{"cond":"le","value":9}]}]
> 0xa
EOF
RUN
NAME=afvcs set and afvc- clear constraints (#315)
FILE=bins/elf/constr_type
CMDS=<<EOF
e analysis.types.constraint=true
aaa
s sym.range_small
afvcs var_1ch ">5,<=20"
afvc var_1ch
afvcs var_1ch "gt 1,le 10"
afvc var_1ch
afvc- var_1ch
afvc var_1ch
echo done
EOF
EXPECT=<<EOF
> 0x5 && <= 0x14
> 0x1 && <= 0xa
done
EOF
RUN