radare2/test/db/cmd/cmd_open

659 lines
10 KiB
Plaintext

NAME=m1slice
ARGS=-a x86
FILE=bins/mach0/ls-m1
CMDS=<<EOF
pd 2
ie
EOF
EXPECT=<<EOF
;-- main:
;-- entry0:
;-- func.100003c0c:
0x100003c0c 55 push rbp
0x100003c0d 4889e5 mov rbp, rsp
[Entrypoints]
vaddr=0x100003c0c paddr=0x00007c0c haddr=0x00000658 type=program
1 entrypoints
EOF
RUN
NAME=m1slice.v35
ARGS=-a arm.v35
FILE=bins/mach0/ls-m1
CMDS=<<EOF
pd 2
ie
EOF
EXPECT=<<EOF
;-- main:
;-- entry0:
;-- func.100003a90:
0x100003a90 7f2303d5 pacibsp
0x100003a94 fc6fbaa9 stp x28, x27, [sp, -0x60]!
[Entrypoints]
vaddr=0x100003a90 paddr=0x0001ba90 haddr=0x00000600 type=program
1 entrypoints
EOF
RUN
## XXX this test was assuming arch was arm when trying an unexistent plugin
## XXX the reason to mark this as broken is because the mess to get it to
## XXX work with asm/arch/anal is too much for something that will change soon
NAME=m1slice.v35
ARGS=-a arm.404
BROKEN=1
FILE=bins/mach0/ls-m1
CMDS=<<EOF
pd 2
ie
EOF
EXPECT=<<EOF
;-- main:
;-- entry0:
;-- func.100003a90:
0x100003a90 7f2303d5 pacibsp
0x100003a94 fc6fbaa9 stp x28, x27, [sp, -0x60]!
[Entrypoints]
vaddr=0x100003a90 paddr=0x0001ba90 haddr=0x00000600 type=program
1 entrypoints
EOF
RUN
NAME=oon
FILE=bins/mach0/mac-ls2
CMDS=<<EOF
oon
o
EOF
EXPECT=<<EOF
4 * r-- 0x00009730 bins/mach0/mac-ls2
EOF
RUN
NAME=oonn
FILE=bins/mach0/mac-ls2
ARGS=-n -e bin.types=true
CMDS=<<EOF
pf.~?
oonn
pf.~?
o~?
EOF
EXPECT=<<EOF
0
58
1
EOF
RUN
NAME=oonn
FILE=bins/mach0/mac-ls2
ARGS=-e bin.types=true
CMDS=<<EOF
pf.~?
oonn
pf.~?
o~?
EOF
EXPECT=<<EOF
58
58
1
EOF
RUN
NAME=om=
FILE=bins/mach0/mac-ls2
BROKEN=1
CMDS=om=
EXPECT=<<EOF
0* 0x100000000 ################-------------- 0x100005000 r-x 3 fmap.TEXT
1 0x100005000 ---------------####----------- 0x100006000 r-- 3 fmap.DATA
2 0x100006000 ------------------############ 0x10000a000 r-- 3 fmap.LINKEDIT
=> 0x1000011e8 ------------------------------ 0x1000012e8
EOF
RUN
NAME=obo baddrs
FILE=bins/mach0/mac-ls2
ARGS=-B0x50000
CMDS=<<EOF
s
o bins/mach0/mac-ls
s
obo 3
s
obo 4
s
EOF
EXPECT=<<EOF
0x511e8
0x100001058
0x511e8
0x100001058
EOF
RUN
NAME=oom
FILE=bins/elf/libmagic.so
CMDS=<<EOF
o~?
oom
o~malloc?
EOF
EXPECT=<<EOF
2
1
EOF
RUN
NAME=o-[0]
FILE=malloc://1024
CMDS=o- `o~[0]`;o
EXPECT=<<EOF
EOF
RUN
NAME=oj-
FILE=malloc://1024
CMDS=o- `oj~{[0].fd}`;o
EXPECT=<<EOF
EOF
RUN
NAME=oj-pj
FILE=<<EOF
bins/elf/crackme0x05
bins/elf/crackme0x00b
EOF
CMDS=oj
EXPECT=<<EOF
[{"raised":false,"fd":3,"uri":"bins/elf/crackme0x05","from":0,"writable":false,"size":7656},{"raised":false,"fd":4,"uri":"null://4","from":0,"writable":true,"size":4},{"raised":true,"fd":5,"uri":"bins/elf/crackme0x00b","from":0,"writable":false,"size":7375},{"raised":false,"fd":6,"uri":"null://8","from":0,"writable":true,"size":8}]
EOF
RUN
NAME=o -
FILE=malloc://1024
CMDS=<<EOF
o -;o~?
EOF
EXPECT=<<EOF
2
EOF
RUN
NAME=om
FILE=malloc://1024
CMDS=<<EOF
om `o~[0]` 0x4000
om~?
EOF
EXPECT=<<EOF
2
EOF
RUN
NAME=om2
FILE=malloc://1024
CMDS=<<EOF
om `o~[0]` 0x4000
om `o~[0]` 0x4000
om~?
EOF
EXPECT=<<EOF
3
EOF
RUN
NAME=omn - crash
FILE=-
CMDS=omn
EXPECT=<<EOF
EOF
RUN
NAME=oob 10
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=<<EOF
10oob
pi 1
EOF
EXPECT=<<EOF
xor ebp, ebp
EOF
RUN
NAME=oo+ 10
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=<<EOF
10oo+
pi 1
EOF
EXPECT=<<EOF
xor ebp, ebp
EOF
RUN
NAME=oob consider baddr
FILE=bins/mach0/mac-ls
ARGS=-e bin.types=true
CMDS=<<EOF
e bin.baddr = 0xf00000
k old_v=`ieq`
oob
iI~baddr[1]
ie~vaddr[1]
p8 10 @ entry0
p8 10 @ `k old_v`
EOF
EXPECT=<<EOF
0xf00000
0x00f01058
554889e5415741564155
ffffffffffffffffffff
EOF
RUN
NAME=oob consider laddr 32bit
FILE=bins/mach0/fatmach0-3true
ARGS=-a x86 -b 32 -e bin.types=true
CMDS=<<EOF
e bin.laddr = 0x5000
e bin.baddr = -1
oob
iI~laddr[1]
iI~baddr[1]
EOF
EXPECT=<<EOF
0x0
0x1000
EOF
RUN
NAME=oob consider laddr 64bit
FILE=bins/mach0/fatmach0-3true
ARGS=-a x86 -b 64
CMDS=<<EOF
e bin.laddr = 0x5000
e bin.baddr = -1
oob
iI~laddr[1]
iI~baddr[1]
EOF
EXPECT=<<EOF
0x0
0x100000000
EOF
RUN
NAME=oob from malloc
FILE=malloc://1024
CMDS=<<EOF
wx 7f454c4601010100b32ae9310000000002000300010000000800200020000000010000000000000000002000010000001b0300001b0300000700000000100000e901000000b0e8a502000049e7551ff1c2a03ff17995d4f3f241adf35954d7a87b543f48e7551ff1c3a03ff179bc17f3795487eb79543fc0b0ddf14b78543ff1b4d41632fc944be0c0563ed179e60b197f563ff190273df179bf3e412aeda9f3595485f579543f1987553ff1914c3df1796722677b743f856aeddaf159548dec91813ef179bd7df379544dc722d1e48491ed09f05954859979543f19c3553ff190733df1795e1fa60b3b519659245e820a2350831d781f8216264d88577a11fb73546c9e0b2646d11b214bd10d3c5ad1092650921c274cd10a315a9c0a744b9e59365ad10d265e921c3011df57747d881c7a11df735412cf59074a921a314c8259751ed13a3b51960b354b8415354b98163a4cdf577a35d1597901d1203b4ad11a3551d10a31519559395ad1003b4a835927509d0c20569e177b5c9e14395a9f0d271f900d744b991c745e9316225ad11435569d59355b950b7a11df7354c511b6cac511c2838b48c9899750f5818854b6c7c55fff99915eb199c552e48b865afb8fc512a4e0c511b6cac511bbc7c81cbbc7c81cbbc7c81cbbc7c81cbbc7c81cbbc7c81cbbc7c81cbbc7c81cbbe0ef65fe839611f9848011fe8b9611f7ca9550e49e8c52e3868443fa93c542fb8b895db6998c4bf3c4cb1f9ca28a41f3ca9016fa86c556f39ec542f9878011f09f8b11e1839159b683911f9ce0bc5ee3ca8650f8ca8f5eff84c55cf3ca8445b693845fff99915ed6849049f38ecb5ee48dc55ee4ca8a5fb6c99654f58e8047d68c9754f3848a55f3c48b54e2e0ef74f89e8043b69e8d54b6ba8442e59d8a43f2cadf11b6cae53196ea3ff17954d6f079543f414894b632c950f271bae4d6f079543fd24894b63287978ff2b4d4fc41f092b606f08d92c0a9ffdd0bbabd3cf179548f393a65ff78baede0f37954fe187bea37f1595492f0bab6c4708a3f3bf92c972d2390b84b00200089c689f7b9a5020000c1e902ad35f179543fabe2f7c3e9010000003231c089c3fec0cd80c3
oba
i~bintype[1]
.ie*
p8 10 @ entry0
EOF
EXPECT=<<EOF
elf
b32ae931000000000200
EOF
RUN
NAME=ob select files
FILE=malloc://1024
CMDS=<<EOF
e scr.null=true
o malloc://512
e scr.null=false
i~file[1]
obo 3
i~file[1]
obo 4
i~file[1]
obo 3
i~file[1]
EOF
EXPECT=<<EOF
malloc://512
malloc://1024
malloc://512
malloc://1024
EOF
RUN
NAME=ob select files binobj
FILE=bins/elf/libmagic.so
CMDS=<<EOF
iiq~?
e scr.null=true
o malloc://1024
e scr.null=false
iiq~?
EOF
EXPECT=<<EOF
38
0
EOF
RUN
NAME=ob select files binobj2
FILE=bins/elf/libmagic.so
CMDS=<<EOF
isq~?
e scr.null=true
o bins/elf/true32
e scr.null=false
isq~?
# raise back
op `o~:0[0]`
isq~?
EOF
EXPECT=<<EOF
408
46
408
EOF
RUN
NAME=ob 0 fix
FILE=<<EOF
bins/elf/_Exit (42)
bins/elf/libverifyPass.so
bins/elf/libc.so.6
EOF
CMDS=<<EOF
ob~[1-2]
?e
ob 1; i~^fd
ob 2; i~^fd
ob 0; i~^fd
EOF
EXPECT=<<EOF
0 3
1 4
2 6
fd 4
fd 6
fd 3
EOF
RUN
NAME=o:
FILE=-
CMDS=<<EOF
wx 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
s 0x10
px 16~:1
?e
o:
px 16~:1
?e
om
?e
omp 1
px 16~:1
EOF
EXPECT=<<EOF
0x00000010 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................
0x00000010 2021 2223 2425 2627 2829 2a2b 2c2d 2e2f !"#$%&'()*+,-./
* 2 fd: 4 +0x00000000 0x00000000 - 0x000000ff rwx
- 1 fd: 3 +0x00000000 0x00000000 - 0x000001ff rwx
0x00000010 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................
EOF
RUN
NAME=o: ob fix
FILE=--
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
o: 1024
ob
EOF
EXPECT=<<EOF
* 0 3 x86-64 ba:0x00000000 sz:1024 malloc://1024
EOF
RUN
NAME=o: obj
FILE=-
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
obj~{}
EOF
EXPECT=<<EOF
[
{
"name": "malloc://512",
"iofd": 3,
"bfid": 0,
"size": 512,
"obj": {
"arch": "x86",
"bits": 64,
"binoffset": 0,
"objsize": 512
}
}
]
EOF
RUN
NAME=o+ writable maps fix
FILE=--
CMDS=<<EOF
o+ bins/elf/ls
om
# Possible parallelism problem
# ?e
# pv1
# $old=`pv1`
# wx 0x90
# pv1
# wx `$old?`
# pv1
EOF
EXPECT=<<EOF
- 5 fd: 3 +0x00000000 0x00000000 - 0x0000347f rwx fmap.LOAD0
* 4 fd: 3 +0x00004000 0x00004000 - 0x00016790 rwx fmap.LOAD1
- 3 fd: 3 +0x00017000 0x00017000 - 0x0001f7bf rwx fmap.LOAD2
- 2 fd: 3 +0x00020050 0x00021050 - 0x00022267 rwx fmap.LOAD3
- 1 fd: 4 +0x00000000 0x00022268 - 0x00023557 rw- mmap.LOAD3
EOF
RUN
NAME=o-*
FILE=-
CMDS=<<EOF
o -
o-*
o~?
EOF
EXPECT=<<EOF
0
EOF
RUN
NAME=o-3
FILE=-
CMDS=<<EOF
o -
o-3
o~?
EOF
EXPECT=<<EOF
1
EOF
RUN
NAME=oc
FILE=bins/elf/true32
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
i
oc -
?e --
e asm.arch=x86
e asm.bits=64
i
EOF
EXPECT=<<EOF
fd 3
file bins/elf/true32
size 0x560c
humansz 21.5K
mode r-x
format elf
iorw false
block 0x100
type EXEC (Executable file)
arch x86
baddr 0x8048000
binsz 20668
bintype elf
bits 32
canary true
class ELF32
crypto false
endian little
havecode true
intrp /lib/ld-linux.so.2
laddr 0x0
lang c
linenum false
lsyms false
machine Intel 80386
nx true
os linux
pic false
relocs false
relro partial
rpath NONE
sanitize false
static false
stripped true
subsys linux
va true
--
fd 3
file malloc://512
size 0x200
humansz 512
mode rwx
format any
iorw true
block 0x100
EOF
RUN
NAME=oa
FILE=bins/elf/ls
ARGS=-e io.cache=true
CMDS=<<EOF
oa x86 64
o bins/elf/true
oa x86 64
oa x86 64 bins/elf/ls
oa x86 64 nonfile
oa x86
EOF
EXPECT=<<EOF
More than one file is opened, specify the filename
Cannot find file nonfile
Missing argument
EOF
BROKEN=1
RUN
NAME=ob *
FILE=bins/elf/ls
CMDS=<<EOF
is~?
o bins/elf/ezpz
is~?
?e --
ob *
is~?
?e --
ob 0
is~?
ob 1
is~?
EOF
EXPECT=<<EOF
133
134
--
267
--
133
134
EOF
RUN
NAME=obf
FILE=--
CMDS=<<EOF
# pwd
obf ./bins/mach0/test-arm32
is~?
obf ./bins/mach0/ls-m1
is~?
ob 1
is~?
i
?e -- o
o
?e -- ob
ob
EOF
EXPECT=<<EOF
8
138
8
arch arm
baddr 0x4000
binsz 65536
bintype mach0
bits 32
canary false
class MACH0
compiler clang
crypto false
endian little
havecode true
intrp /usr/lib/dyld
laddr 0x0
lang c
linenum false
lsyms false
machine v7
nx false
os ios
pic true
relocs true
sanitize false
static false
stripped false
subsys darwin
va true
-- o
-- ob
- 0 3 arm-32 ba:0x00000000 sz:65536 ./bins/mach0/test-arm32
* 1 3 arm-32 ba:0x00004000 sz:65536 ./bins/mach0/test-arm32
- 2 3 x86-64 ba:0x100000000 sz:72800 ./bins/mach0/ls-m1
EOF
RUN