NAME=dbg.aslr
FILE=bins/elf/analysis/pie
ARGS=-d
CMDS=pi 3 @ entry0
EXPECT=<<EOF
xor ebp, ebp
pop esi
mov ecx, esp
EOF
RUN

NAME=function rebase
FILE=bins/elf/analysis/pie
ARGS=-d
CMDS=<<EOF
%v main-`dmm~pie[0]`
doc
%v main
EOF
EXPECT=<<EOF
0x5c5
0x5c5
EOF
RUN

NAME=bp rebase
FILE=bins/elf/analysis/pie
ARGS=-d
CMDS=<<EOF
aa
db @ main
%v main-`dbl~main[0]`
doc
%v main-`dbl~main[0]`
EOF
EXPECT=<<EOF
0x0
0x0
EOF
RUN

NAME=ref rebase
FILE=bins/elf/hello_world
ARGS=-d
CMDS=<<EOF
aa
%v `axt @ main~entry0[1]`-`e bin.baddr`
doc
%v `axt @ main~entry0[1]`-`e bin.baddr`
EOF
EXPECT=<<EOF
0x6bd
0x6bd
EOF
RUN

NAME=flag rebase
FILE=bins/elf/analysis/pie
ARGS=-d
CMDS=<<EOF
aa
fs test
f testflag @ main+10
%v `fl~testflag[0]`-`e bin.baddr`
doc
%v `fl~testflag[0]`-`e bin.baddr`
EOF
EXPECT=<<EOF
0x5cf
0x5cf
EOF
RUN

NAME=var rebase
FILE=bins/elf/hello_world
ARGS=-d
CMDS=<<EOF
aa
afvl @ main
doc
afvl @ main
EOF
EXPECT=<<EOF
var int64_t var_28h @ stack - 0x28
var int64_t var_24h @ stack - 0x24
var int64_t var_20h @ stack - 0x20
var int64_t var_18h @ stack - 0x18
var int64_t var_10h @ stack - 0x10
var int64_t var_28h @ stack - 0x28
var int64_t var_24h @ stack - 0x24
var int64_t var_20h @ stack - 0x20
var int64_t var_18h @ stack - 0x18
var int64_t var_10h @ stack - 0x10
EOF
RUN
