* Remove globals and refactor to complete implementation of logging. * Renamed log.traplevel to log.abortlevel and hide it on release builds.
1254 lines
34 KiB
Text
1254 lines
34 KiB
Text
NAME=baddr ==
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -qe ${RZ_FILE};!rz-bin -B 0x400000 -qe ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
0x00400410
|
|
0x00400410
|
|
EOF
|
|
RUN
|
|
|
|
NAME=baddr > 0
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -qe ${RZ_FILE};!rz-bin -B 0x800000 -qe ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
0x00400410
|
|
0x00800410
|
|
EOF
|
|
RUN
|
|
|
|
NAME=baddr 0
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -qe ${RZ_FILE};!rz-bin -B 0 -qe ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
0x00400410
|
|
0x00000410
|
|
EOF
|
|
RUN
|
|
|
|
NAME=laddr 0
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -G 0 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x00400410 0x00000410 0x00400018 0x00000018 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=laddr 0 && baddr 0
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -G 0 -B 0 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x00000410 0x00000410 0x00000018 0x00000018 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -k file
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -k ${RZ_FILE}
|
|
ARGS=-e log.level=3
|
|
EXPECT=<<EOF
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
|
|
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
|
|
WARNING: Neither hash nor gnu_hash exist. Falling back to heuristics for deducing the number of dynamic symbols...
|
|
Missing file.
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -K md5 -S file
|
|
FILE=bins/pe/a.exe
|
|
CMDS=!rz-bin -K md5 -S ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Sections]
|
|
paddr size vaddr vsize align perm name type flags md5
|
|
---------------------------------------------------------------------------------------------------------------------------------------
|
|
0x00000400 0xa00 0x00401000 0x1000 0x0 -r-x .text CNT_CODE,CNT_INITIALIZED_DATA,ALIGN_16BYTES 3d6a5b8dc5e41b09659638ad5735e5b5
|
|
0x00000e00 0x200 0x00402000 0x1000 0x0 -rw- .data CNT_INITIALIZED_DATA,ALIGN_4BYTES b3c542ba67f2d1a949fa1a25ce22f7e3
|
|
0x00001000 0x200 0x00403000 0x1000 0x0 -r-- .rdata CNT_INITIALIZED_DATA,ALIGN_4BYTES c9a877a4e945b087b8323830442c88d6
|
|
0x00000000 0x0 0x00404000 0x1000 0x0 -rw- .bss CNT_UNINITIALIZED_DATA,ALIGN_8BYTES
|
|
0x00001200 0x400 0x00405000 0x1000 0x0 -rw- .idata CNT_INITIALIZED_DATA,ALIGN_4BYTES 963212dc58a74f32e0f6ffce84dcf7ea
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -s file pe
|
|
FILE=bins/pe/a.exe
|
|
CMDS=!rz-bin -s ${RZ_FILE}|wc -l|awk "{print \$1}"
|
|
EXPECT=<<EOF
|
|
24
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -s file elf
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=!rz-bin -s ${RZ_FILE}|wc -l|awk "{print \$1}"
|
|
EXPECT=<<EOF
|
|
70
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -S, -SS, -rS and -rSS file elf
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=<<EOF
|
|
env RZ_BIN_PREFIX=prixfixe
|
|
!rz-bin -S ${RZ_FILE}
|
|
!rz-bin -SS ${RZ_FILE}
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[Sections]
|
|
paddr size vaddr vsize align perm name type flags
|
|
--------------------------------------------------------------------------------------------------
|
|
0x00000000 0x0 ---------- 0x0 0x0 ---- prixfixe. NULL
|
|
0x00000134 0x13 0x08048134 0x13 0x0 -r-- prixfixe..interp PROGBITS alloc
|
|
0x00000148 0x20 0x08048148 0x20 0x0 -r-- prixfixe..note.ABI-tag NOTE alloc
|
|
0x00000168 0x24 0x08048168 0x24 0x0 -r-- prixfixe..note.gnu.build-id NOTE alloc
|
|
0x0000018c 0x20 0x0804818c 0x20 0x0 -r-- prixfixe..gnu.hash GNU_HASH alloc
|
|
0x000001ac 0x50 0x080481ac 0x50 0x0 -r-- prixfixe..dynsym DYNSYM alloc
|
|
0x000001fc 0x4a 0x080481fc 0x4a 0x0 -r-- prixfixe..dynstr STRTAB alloc
|
|
0x00000246 0xa 0x08048246 0xa 0x0 -r-- prixfixe..gnu.version VERSYM alloc
|
|
0x00000250 0x20 0x08048250 0x20 0x0 -r-- prixfixe..gnu.version_r VERNEED alloc
|
|
0x00000270 0x8 0x08048270 0x8 0x0 -r-- prixfixe..rel.dyn REL alloc
|
|
0x00000278 0x18 0x08048278 0x18 0x0 -r-- prixfixe..rel.plt REL alloc
|
|
0x00000290 0x23 0x08048290 0x23 0x0 -r-x prixfixe..init PROGBITS alloc,execute
|
|
0x000002c0 0x40 0x080482c0 0x40 0x0 -r-x prixfixe..plt PROGBITS alloc,execute
|
|
0x00000300 0x194 0x08048300 0x194 0x0 -r-x prixfixe..text PROGBITS alloc,execute
|
|
0x00000494 0x14 0x08048494 0x14 0x0 -r-x prixfixe..fini PROGBITS alloc,execute
|
|
0x000004a8 0x15 0x080484a8 0x15 0x0 -r-- prixfixe..rodata PROGBITS alloc
|
|
0x000004c0 0x2c 0x080484c0 0x2c 0x0 -r-- prixfixe..eh_frame_hdr PROGBITS alloc
|
|
0x000004ec 0xb0 0x080484ec 0xb0 0x0 -r-- prixfixe..eh_frame PROGBITS alloc
|
|
0x0000059c 0x4 0x0804959c 0x4 0x0 -rw- prixfixe..init_array INIT_ARRAY write,alloc
|
|
0x000005a0 0x4 0x080495a0 0x4 0x0 -rw- prixfixe..fini_array FINI_ARRAY write,alloc
|
|
0x000005a4 0x4 0x080495a4 0x4 0x0 -rw- prixfixe..jcr PROGBITS write,alloc
|
|
0x000005a8 0xe8 0x080495a8 0xe8 0x0 -rw- prixfixe..dynamic DYNAMIC write,alloc
|
|
0x00000690 0x4 0x08049690 0x4 0x0 -rw- prixfixe..got PROGBITS write,alloc
|
|
0x00000694 0x18 0x08049694 0x18 0x0 -rw- prixfixe..got.plt PROGBITS write,alloc
|
|
0x000006ac 0x8 0x080496ac 0x8 0x0 -rw- prixfixe..data PROGBITS write,alloc
|
|
0x000006b4 0x0 0x080496b4 0x4 0x0 -rw- prixfixe..bss NOBITS write,alloc
|
|
0x000006b4 0x11 ---------- 0x11 0x0 ---- prixfixe..comment PROGBITS merge,strings
|
|
0x000006c5 0x106 ---------- 0x106 0x0 ---- prixfixe..shstrtab STRTAB
|
|
0x00000c7c 0x450 ---------- 0x450 0x0 ---- prixfixe..symtab SYMTAB
|
|
0x000010cc 0x257 ---------- 0x257 0x0 ---- prixfixe..strtab STRTAB
|
|
|
|
[Segments]
|
|
paddr size vaddr vsize align perm name
|
|
--------------------------------------------------------------------
|
|
0x00000034 0x100 0x08048034 0x100 0x4 -r-x prixfixe.PHDR
|
|
0x00000134 0x13 0x08048134 0x13 0x1 -r-- prixfixe.INTERP
|
|
0x00000000 0x59c 0x08048000 0x59c 0x1000 -r-x prixfixe.LOAD0
|
|
0x0000059c 0x118 0x0804959c 0x11c 0x1000 -rw- prixfixe.LOAD1
|
|
0x000005a8 0xe8 0x080495a8 0xe8 0x4 -rw- prixfixe.DYNAMIC
|
|
0x00000148 0x44 0x08048148 0x44 0x4 -r-- prixfixe.NOTE
|
|
0x000004c0 0x2c 0x080484c0 0x2c 0x4 -r-- prixfixe.GNU_EH_FRAME
|
|
0x00000000 0x0 0x00000000 0x0 0x4 -rw- prixfixe.GNU_STACK
|
|
0x00000000 0x34 0x08048000 0x34 0x0 -rw- prixfixe.ehdr
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -SSS
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=!rz-bin -SSS ${RZ_FILE}|wc -l|awk "{print \$1}"
|
|
EXPECT=<<EOF
|
|
13
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -z pe
|
|
FILE=bins/pe/a.exe
|
|
CMDS=!rz-bin -z ${RZ_FILE}|wc -l|awk "{print \$1}"
|
|
EXPECT=<<EOF
|
|
31
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -zz pe
|
|
FILE=bins/pe/ioli/w32/crackme0x00.exe
|
|
CMDS=!rz-bin -zz ${RZ_FILE} | grep "Password:"
|
|
EXPECT=<<EOF
|
|
086 0x00002619 0x00404019 10 11 (.rdata) ascii Password:
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -zzq pe
|
|
FILE=bins/pe/ioli/w32/crackme0x00.exe
|
|
CMDS=!rz-bin -zzq ${RZ_FILE} | grep "Password:"
|
|
EXPECT=<<EOF
|
|
0x404019 11 10 Password:
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -zzqq pe
|
|
FILE=bins/pe/ioli/w32/crackme0x00.exe
|
|
CMDS=!rz-bin -zzqq ${RZ_FILE} | grep "Password:"
|
|
EXPECT=<<EOF
|
|
Password:
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -z elf
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=!rz-bin -z ${RZ_FILE}|wc -l|awk "{print \$1}"
|
|
EXPECT=<<EOF
|
|
5
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -G 0x1000 -e fatmach0
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -G 0x1000 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
-----------------------------------------------------
|
|
0x100000ef8 0x00001ef8 ---------- 0x00000570 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -e fatmach0
|
|
BROKEN=1
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entrypoints]
|
|
vaddr=0x100000ef8 paddr=0x00001ef8 baddr=0x100000000 laddr=0x00001000 haddr=0x00000570 type=program
|
|
|
|
1 entrypoints
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -G 0x5000 -e fatmach0
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -G 0x5000 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x00001f44 0x00005f44 ---------- 0x00000420 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -a x86 -b 32 -e fatmach0
|
|
BROKEN=1
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -a x86 -b 32 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entrypoints]
|
|
vaddr=0x00001f44 paddr=0x00005f44 baddr=0x00001000 laddr=0x00005000 haddr=0x00000420 type=program
|
|
|
|
1 entrypoints
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -B 0x2000000 -G 0x1000 -e fatmach0
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -B 0x2000000 -G 0x1000 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x02000ef8 0x00001ef8 ---------- 0x00000570 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=TODO: test on pie fatmach0
|
|
BROKEN=1
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -B 0x2000000 -G 0x1000 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -B 0x2000000 -e arm64
|
|
FILE=bins/mach0/hello-ios-arm64
|
|
CMDS=!rz-bin -B 0x2000000 -e ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x02007f34 0x00007f34 ---------- 0x00000468 program
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -a x86 -b 32 -i fatmach0
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -a x86 -b 32 -i ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Imports]
|
|
nth vaddr bind type lib name
|
|
----------------------------------------------
|
|
0 0x00001f94 NONE FUNC exit
|
|
1 ---------- NONE FUNC dyld_stub_binder
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -G 0x5000 -i fatmach0
|
|
FILE=bins/mach0/fatmach0-3true
|
|
CMDS=!rz-bin -G 0x5000 -i ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Imports]
|
|
nth vaddr bind type lib name
|
|
----------------------------------------------
|
|
0 0x00001f94 NONE FUNC exit
|
|
1 ---------- NONE FUNC dyld_stub_binder
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -qqz
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=!rz-bin -qqz ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
Hello World
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -qqzz
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=<<EOF
|
|
!rz-bin -qqzz ${RZ_FILE}~do_global_dtors_aux_fini_array_entry
|
|
!rz-bin -qqzz ${RZ_FILE}~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
__do_global_dtors_aux_fini_array_entry
|
|
82
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -qqzzz
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=<<EOF
|
|
!rz-bin -qqzzz ${RZ_FILE}~do_global_dtors_aux_fini_array_entry
|
|
!rz-bin -qqzzz ${RZ_FILE}~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
__do_global_dtors_aux_fini_array_entry
|
|
82
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -qOr
|
|
FILE=bins/elf/analysis/ls-linux-x86_64-zlul
|
|
CMDS=<<EOF
|
|
!rz-bin -qOr/.data/-1 ${FILE}
|
|
!rz-bin -qOr/.data/-1 ${FILE}
|
|
EOF
|
|
EXPECT=<<EOF
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -ee -j
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=<<EOF
|
|
!rz-bin -ee -j ${RZ_FILE}~{}
|
|
EOF
|
|
EXPECT=<<EOF
|
|
{
|
|
"initfini": [
|
|
{
|
|
"vaddr": 134513616,
|
|
"paddr": 976,
|
|
"baddr": 134512640,
|
|
"laddr": 0,
|
|
"hvaddr": 134518172,
|
|
"haddr": 1436,
|
|
"type": "init"
|
|
},
|
|
{
|
|
"vaddr": 134513584,
|
|
"paddr": 944,
|
|
"baddr": 134512640,
|
|
"laddr": 0,
|
|
"hvaddr": 134518176,
|
|
"haddr": 1440,
|
|
"type": "fini"
|
|
}
|
|
]
|
|
}
|
|
EOF
|
|
RUN
|
|
|
|
NAME=-ee baddr 0
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=!rz-bin -ee -B 0 ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Initfini]
|
|
vaddr paddr hvaddr haddr type
|
|
-------------------------------------------------
|
|
0x000003d0 0x000003d0 0x0000159c 0x0000059c init
|
|
0x000003b0 0x000003b0 0x000015a0 0x000005a0 fini
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -g
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=!rz-bin -g ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Info]
|
|
arch x86
|
|
cpu N/A
|
|
baddr 0x08048000
|
|
binsz 0x00001323
|
|
bintype elf
|
|
bits 32
|
|
class ELF32
|
|
compiler GCC: (GNU) 4.8.2
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid N/A
|
|
intrp /lib/ld-linux.so.2
|
|
laddr 0x00000000
|
|
lang c
|
|
machine Intel 80386
|
|
maxopsz 16
|
|
minopsz 1
|
|
os linux
|
|
cc N/A
|
|
pcalign 0
|
|
relro no
|
|
rpath NONE
|
|
subsys linux
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static false
|
|
linenum true
|
|
lsyms true
|
|
canary false
|
|
PIE false
|
|
RELROCS true
|
|
NX true
|
|
|
|
[Imports]
|
|
nth vaddr bind type lib name
|
|
---------------------------------------------------
|
|
1 0x080482d0 GLOBAL FUNC puts
|
|
2 0x080482e0 WEAK NOTYPE __gmon_start__
|
|
3 0x080482f0 GLOBAL FUNC __libc_start_main
|
|
|
|
[Entries]
|
|
vaddr paddr hvaddr haddr type
|
|
----------------------------------------------------
|
|
0x08048300 0x00000300 0x08048018 0x00000018 program
|
|
|
|
[Classes]
|
|
address min max name super
|
|
---------------------------
|
|
|
|
[Symbols]
|
|
nth paddr vaddr bind type size lib name
|
|
----------------------------------------------------------------------------------------
|
|
4 0x000004ac 0x080484ac GLOBAL OBJ 4 _IO_stdin_used
|
|
1 0x00000134 0x08048134 LOCAL SECT 0 .interp
|
|
2 0x00000148 0x08048148 LOCAL SECT 0 .note.ABI-tag
|
|
3 0x00000168 0x08048168 LOCAL SECT 0 .note.gnu.build-id
|
|
4 0x0000018c 0x0804818c LOCAL SECT 0 .gnu.hash
|
|
5 0x000001ac 0x080481ac LOCAL SECT 0 .dynsym
|
|
6 0x000001fc 0x080481fc LOCAL SECT 0 .dynstr
|
|
7 0x00000246 0x08048246 LOCAL SECT 0 .gnu.version
|
|
8 0x00000250 0x08048250 LOCAL SECT 0 .gnu.version_r
|
|
9 0x00000270 0x08048270 LOCAL SECT 0 .rel.dyn
|
|
10 0x00000278 0x08048278 LOCAL SECT 0 .rel.plt
|
|
11 0x00000290 0x08048290 LOCAL SECT 0 .init
|
|
12 0x000002c0 0x080482c0 LOCAL SECT 0 .plt
|
|
13 0x00000300 0x08048300 LOCAL SECT 0 .text
|
|
14 0x00000494 0x08048494 LOCAL SECT 0 .fini
|
|
15 0x000004a8 0x080484a8 LOCAL SECT 0 .rodata
|
|
16 0x000004c0 0x080484c0 LOCAL SECT 0 .eh_frame_hdr
|
|
17 0x000004ec 0x080484ec LOCAL SECT 0 .eh_frame
|
|
18 0x0000059c 0x0804959c LOCAL SECT 0 .init_array
|
|
19 0x000005a0 0x080495a0 LOCAL SECT 0 .fini_array
|
|
20 0x000005a4 0x080495a4 LOCAL SECT 0 .jcr
|
|
21 0x000005a8 0x080495a8 LOCAL SECT 0 .dynamic
|
|
22 0x00000690 0x08049690 LOCAL SECT 0 .got
|
|
23 0x00000694 0x08049694 LOCAL SECT 0 .got.plt
|
|
24 0x000006ac 0x080496ac LOCAL SECT 0 .data
|
|
25 ---------- 0x080496b4 LOCAL SECT 0 .bss
|
|
26 ---------- 0x00000000 LOCAL SECT 0 .comment
|
|
27 ---------- 0x00000000 LOCAL FILE 0 init.c
|
|
28 ---------- 0x00000000 LOCAL FILE 0
|
|
29 ---------- 0x00000000 LOCAL FILE 0 crtstuff.c
|
|
30 0x000005a4 0x080495a4 LOCAL OBJ 0 __JCR_LIST__
|
|
31 0x00000340 0x08048340 LOCAL FUNC 0 deregister_tm_clones
|
|
32 0x00000370 0x08048370 LOCAL FUNC 0 register_tm_clones
|
|
33 0x000003b0 0x080483b0 LOCAL FUNC 0 __do_global_dtors_aux
|
|
34 ---------- 0x080496b4 LOCAL OBJ 1 completed.5979
|
|
35 0x000005a0 0x080495a0 LOCAL OBJ 0 __do_global_dtors_aux_fini_array_entry
|
|
36 0x000003d0 0x080483d0 LOCAL FUNC 0 frame_dummy
|
|
37 0x0000059c 0x0804959c LOCAL OBJ 0 __frame_dummy_init_array_entry
|
|
38 ---------- 0x00000000 LOCAL FILE 0 hello.c
|
|
39 ---------- 0x00000000 LOCAL FILE 0 crtstuff.c
|
|
40 0x00000598 0x08048598 LOCAL OBJ 0 __FRAME_END__
|
|
41 0x000005a4 0x080495a4 LOCAL OBJ 0 __JCR_END__
|
|
42 ---------- 0x00000000 LOCAL FILE 0
|
|
43 0x000005a0 0x080495a0 LOCAL NOTYPE 0 __init_array_end
|
|
44 0x000005a8 0x080495a8 LOCAL OBJ 0 _DYNAMIC
|
|
45 0x0000059c 0x0804959c LOCAL NOTYPE 0 __init_array_start
|
|
46 0x00000694 0x08049694 LOCAL OBJ 0 _GLOBAL_OFFSET_TABLE_
|
|
47 0x00000490 0x08048490 GLOBAL FUNC 2 __libc_csu_fini
|
|
49 0x00000330 0x08048330 GLOBAL FUNC 4 __x86.get_pc_thunk.bx
|
|
50 0x000006ac 0x080496ac WEAK NOTYPE 0 data_start
|
|
51 ---------- 0x080496b4 GLOBAL NOTYPE 0 _edata
|
|
52 0x00000494 0x08048494 GLOBAL FUNC 0 _fini
|
|
53 0x000006ac 0x080496ac GLOBAL NOTYPE 0 __data_start
|
|
56 0x000006b0 0x080496b0 GLOBAL OBJ 0 __dso_handle
|
|
57 0x000004ac 0x080484ac GLOBAL OBJ 4 _IO_stdin_used
|
|
59 0x00000420 0x08048420 GLOBAL FUNC 97 __libc_csu_init
|
|
60 ---------- 0x080496b8 GLOBAL NOTYPE 0 _end
|
|
61 0x00000300 0x08048300 GLOBAL FUNC 0 _start
|
|
62 0x000004a8 0x080484a8 GLOBAL OBJ 4 _fp_hw
|
|
63 ---------- 0x080496b4 GLOBAL NOTYPE 0 __bss_start
|
|
64 0x00000400 0x08048400 GLOBAL FUNC 28 main
|
|
66 ---------- 0x080496b4 GLOBAL OBJ 0 __TMC_END__
|
|
68 0x00000290 0x08048290 GLOBAL FUNC 0 _init
|
|
1 0x000002d0 0x080482d0 GLOBAL FUNC 16 imp.puts
|
|
2 0x000002e0 0x080482e0 WEAK NOTYPE 16 imp.__gmon_start__
|
|
3 0x000002f0 0x080482f0 GLOBAL FUNC 16 imp.__libc_start_main
|
|
|
|
[Sections]
|
|
paddr size vaddr vsize align perm name type flags
|
|
-----------------------------------------------------------------------------------------
|
|
0x00000000 0x0 ---------- 0x0 0x0 ---- NULL
|
|
0x00000134 0x13 0x08048134 0x13 0x0 -r-- .interp PROGBITS alloc
|
|
0x00000148 0x20 0x08048148 0x20 0x0 -r-- .note.ABI-tag NOTE alloc
|
|
0x00000168 0x24 0x08048168 0x24 0x0 -r-- .note.gnu.build-id NOTE alloc
|
|
0x0000018c 0x20 0x0804818c 0x20 0x0 -r-- .gnu.hash GNU_HASH alloc
|
|
0x000001ac 0x50 0x080481ac 0x50 0x0 -r-- .dynsym DYNSYM alloc
|
|
0x000001fc 0x4a 0x080481fc 0x4a 0x0 -r-- .dynstr STRTAB alloc
|
|
0x00000246 0xa 0x08048246 0xa 0x0 -r-- .gnu.version VERSYM alloc
|
|
0x00000250 0x20 0x08048250 0x20 0x0 -r-- .gnu.version_r VERNEED alloc
|
|
0x00000270 0x8 0x08048270 0x8 0x0 -r-- .rel.dyn REL alloc
|
|
0x00000278 0x18 0x08048278 0x18 0x0 -r-- .rel.plt REL alloc
|
|
0x00000290 0x23 0x08048290 0x23 0x0 -r-x .init PROGBITS alloc,execute
|
|
0x000002c0 0x40 0x080482c0 0x40 0x0 -r-x .plt PROGBITS alloc,execute
|
|
0x00000300 0x194 0x08048300 0x194 0x0 -r-x .text PROGBITS alloc,execute
|
|
0x00000494 0x14 0x08048494 0x14 0x0 -r-x .fini PROGBITS alloc,execute
|
|
0x000004a8 0x15 0x080484a8 0x15 0x0 -r-- .rodata PROGBITS alloc
|
|
0x000004c0 0x2c 0x080484c0 0x2c 0x0 -r-- .eh_frame_hdr PROGBITS alloc
|
|
0x000004ec 0xb0 0x080484ec 0xb0 0x0 -r-- .eh_frame PROGBITS alloc
|
|
0x0000059c 0x4 0x0804959c 0x4 0x0 -rw- .init_array INIT_ARRAY write,alloc
|
|
0x000005a0 0x4 0x080495a0 0x4 0x0 -rw- .fini_array FINI_ARRAY write,alloc
|
|
0x000005a4 0x4 0x080495a4 0x4 0x0 -rw- .jcr PROGBITS write,alloc
|
|
0x000005a8 0xe8 0x080495a8 0xe8 0x0 -rw- .dynamic DYNAMIC write,alloc
|
|
0x00000690 0x4 0x08049690 0x4 0x0 -rw- .got PROGBITS write,alloc
|
|
0x00000694 0x18 0x08049694 0x18 0x0 -rw- .got.plt PROGBITS write,alloc
|
|
0x000006ac 0x8 0x080496ac 0x8 0x0 -rw- .data PROGBITS write,alloc
|
|
0x000006b4 0x0 0x080496b4 0x4 0x0 -rw- .bss NOBITS write,alloc
|
|
0x000006b4 0x11 ---------- 0x11 0x0 ---- .comment PROGBITS merge,strings
|
|
0x000006c5 0x106 ---------- 0x106 0x0 ---- .shstrtab STRTAB
|
|
0x00000c7c 0x450 ---------- 0x450 0x0 ---- .symtab SYMTAB
|
|
0x000010cc 0x257 ---------- 0x257 0x0 ---- .strtab STRTAB
|
|
|
|
[Segments]
|
|
paddr size vaddr vsize align perm name
|
|
-----------------------------------------------------------
|
|
0x00000034 0x100 0x08048034 0x100 0x4 -r-x PHDR
|
|
0x00000134 0x13 0x08048134 0x13 0x1 -r-- INTERP
|
|
0x00000000 0x59c 0x08048000 0x59c 0x1000 -r-x LOAD0
|
|
0x0000059c 0x118 0x0804959c 0x11c 0x1000 -rw- LOAD1
|
|
0x000005a8 0xe8 0x080495a8 0xe8 0x4 -rw- DYNAMIC
|
|
0x00000148 0x44 0x08048148 0x44 0x4 -r-- NOTE
|
|
0x000004c0 0x2c 0x080484c0 0x2c 0x4 -r-- GNU_EH_FRAME
|
|
0x00000000 0x0 0x00000000 0x0 0x4 -rw- GNU_STACK
|
|
0x00000000 0x34 0x08048000 0x34 0x0 -rw- ehdr
|
|
|
|
[Strings]
|
|
nth paddr vaddr len size section type string
|
|
--------------------------------------------------------------
|
|
0 0x000004b0 0x080484b0 12 13 .rodata ascii Hello world!
|
|
|
|
[Main]
|
|
vaddr paddr
|
|
----------------------
|
|
0x08048400 0x00000400
|
|
|
|
[Dwarf]
|
|
[Relocs]
|
|
vaddr paddr type name
|
|
-----------------------------------------------
|
|
0x08049690 0x00000690 SET_32 __gmon_start__
|
|
0x080496a0 0x000006a0 SET_32 puts
|
|
0x080496a4 0x000006a4 SET_32 __gmon_start__
|
|
0x080496a8 0x000006a8 SET_32 __libc_start_main
|
|
|
|
[Fields]
|
|
paddr name vaddr comment
|
|
---------------------------------------------------------------------------------
|
|
0x00000000 MAGIC 0x00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
|
|
0x00000010 Type 0x00000010 0x0002
|
|
0x00000012 Machine 0x00000012 0x0003
|
|
0x00000014 Version 0x00000014 0x00000001
|
|
0x00000018 Entrypoint 0x00000018 0x08048300
|
|
0x0000001c PhOff 0x0000001c 0x00000034
|
|
0x00000020 ShOff 0x00000020 0x000007cc
|
|
0x00000024 Flags 0x00000024 0x0000
|
|
0x00000028 EhSize 0x00000028 52
|
|
0x0000002a PhentSize 0x0000002a 32
|
|
0x0000002c PhNum 0x0000002c 8
|
|
0x0000002e ShentSize 0x0000002e 40
|
|
0x00000030 ShNum 0x00000030 30
|
|
0x00000032 ShStrndx 0x00000032 27
|
|
|
|
[Libs]
|
|
library
|
|
----------
|
|
libc.so.6
|
|
|
|
[Size]
|
|
4899
|
|
[Versioninfo]
|
|
Version symbols has 5 entries:
|
|
Addr: 0x08048246 Offset: 0x00000246
|
|
0x00000000: 0 (*local*)
|
|
0x00000001: 2 (GLIBC_2.0)
|
|
0x00000002: 0 (*local*)
|
|
0x00000003: 2 (GLIBC_2.0)
|
|
0x00000004: 1 (*global*)
|
|
|
|
|
|
Version need has 1 entries:
|
|
Addr: 0x08048250 Offset: 0x00000250
|
|
0x00000250: Version: 1 File: libc.so.6 Cnt: 1
|
|
0x00000260: Name: GLIBC_2.0 Flags: none Version: 2
|
|
[Initfini]
|
|
vaddr paddr hvaddr haddr type
|
|
-------------------------------------------------
|
|
0x080483d0 0x000003d0 0x0804959c 0x0000059c init
|
|
0x080483b0 0x000003b0 0x080495a0 0x000005a0 fini
|
|
|
|
[Sections mapping]
|
|
Segment Sections
|
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
PHDR
|
|
INTERP .interp
|
|
LOAD0 .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame
|
|
LOAD1 .init_array .fini_array .jcr .dynamic .got .got.plt .data
|
|
DYNAMIC .dynamic
|
|
NOTE .note.ABI-tag .note.gnu.build-id
|
|
GNU_EH_FRAME .eh_frame_hdr
|
|
GNU_STACK
|
|
ehdr
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -x pemixed.exe
|
|
BROKEN=1
|
|
FILE=bins/pe/pemixed.exe
|
|
CMDS=<<EOF
|
|
!rz-bin -x bins/pe/pemixed.exe
|
|
!rm -r pemixed.exe.fat
|
|
EOF
|
|
EXPECT=<<EOF
|
|
pemixed.exe.fat/pemixed.exe.unknown_0.0 created (248)
|
|
pemixed.exe.fat/pemixed.exe.unknown_0.1 created (35328)
|
|
pemixed.exe.fat/pemixed.exe.unknown_0.2 created (35328)
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -I elf_cpp
|
|
FILE=bins/elf/analysis/a.out.cpp
|
|
CMDS=!rz-bin -I ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Info]
|
|
arch x86
|
|
cpu N/A
|
|
baddr 0x00000000
|
|
binsz 0x00001b8b
|
|
bintype elf
|
|
bits 64
|
|
class ELF64
|
|
compiler GCC: (Ubuntu 7.3.0-16ubuntu3) 7.3.0
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid N/A
|
|
intrp /lib64/ld-linux-x86-64.so.2
|
|
laddr 0x00000000
|
|
lang c++
|
|
machine AMD x86-64 architecture
|
|
maxopsz 16
|
|
minopsz 1
|
|
os linux
|
|
cc N/A
|
|
pcalign 0
|
|
relro full
|
|
rpath NONE
|
|
subsys linux
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static false
|
|
linenum true
|
|
lsyms true
|
|
canary false
|
|
PIE true
|
|
RELROCS true
|
|
NX true
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -I asan
|
|
FILE=bins/elf/analysis/a.out.asan
|
|
CMDS=!rz-bin -I ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Info]
|
|
arch x86
|
|
cpu N/A
|
|
baddr 0x00400000
|
|
binsz 0x001876b7
|
|
bintype elf
|
|
bits 64
|
|
class ELF64
|
|
compiler GCC: (Debian 8.2.0-5) 8.2.0 clang version 6.0.1-6 (tags/RELEASE_601/final)
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid N/A
|
|
intrp /lib64/ld-linux-x86-64.so.2
|
|
laddr 0x00000000
|
|
lang c++
|
|
machine AMD x86-64 architecture
|
|
maxopsz 16
|
|
minopsz 1
|
|
os linux
|
|
cc N/A
|
|
pcalign 0
|
|
relro partial
|
|
rpath NONE
|
|
subsys linux
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz true
|
|
static false
|
|
linenum true
|
|
lsyms true
|
|
canary false
|
|
PIE false
|
|
RELROCS true
|
|
NX true
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -I apple-blocks-ext
|
|
FILE=bins/mach0/mach0-blocks-ext
|
|
CMDS=!rz-bin -I ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Info]
|
|
arch x86
|
|
cpu N/A
|
|
baddr 0x100000000
|
|
binsz 0x00002664
|
|
bintype mach0
|
|
bits 64
|
|
class MACH064
|
|
compiler N/A
|
|
dbg_file N/A
|
|
endian LE
|
|
hdr.csum N/A
|
|
guid N/A
|
|
intrp /usr/lib/dyld
|
|
laddr 0x00000000
|
|
lang c++
|
|
machine x86 64 all
|
|
maxopsz 16
|
|
minopsz 1
|
|
os darwin
|
|
cc N/A
|
|
pcalign 0
|
|
rpath N/A
|
|
subsys macOS
|
|
stripped false
|
|
crypto false
|
|
havecode true
|
|
va true
|
|
sanitiz false
|
|
static false
|
|
linenum false
|
|
lsyms false
|
|
canary false
|
|
PIE true
|
|
RELROCS false
|
|
NX false
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -s right symbols
|
|
FILE=bins/elf/libc.so.0
|
|
CMDS=!rz-bin -s ${RZ_FILE} | grep 0002edb0
|
|
EXPECT=<<EOF
|
|
149 0x0002edb0 0x0002edb0 GLOBAL FUNC 356 getc_unlocked
|
|
402 0x0002edb0 0x0002edb0 GLOBAL FUNC 356 __fgetc_unlocked
|
|
980 0x0002edb0 0x0002edb0 GLOBAL FUNC 356 fgetc_unlocked
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -V
|
|
FILE=bins/pe/version_cust.exe
|
|
CMDS=!rz-bin -V ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Versioninfo]
|
|
=== VS_VERSIONINFO ===
|
|
|
|
# VS_FIXEDFILEINFO
|
|
|
|
Signature: 0xfeef04bd
|
|
StrucVersion: 0x0
|
|
FileVersion: 0.0.0.0
|
|
ProductVersion: 0.0.0.0
|
|
FileFlagsMask: 0x0
|
|
FileFlags: 0x0
|
|
FileOS: 0x0
|
|
FileType: 0x0
|
|
FileSubType: 0x0
|
|
|
|
# StringTable
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -c
|
|
FILE=bins/java/test.class
|
|
CMDS=!rz-bin -c ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Classes]
|
|
address min max name super
|
|
---------------------------------------------------------
|
|
0x00000000 0x000008f9 0x00000bcd test groovy.lang.Script
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -cq
|
|
FILE=bins/java/test.class
|
|
CMDS=!rz-bin -cq ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
0x00000000 [0x000008f9 - 0x00000bcd] test groovy.lang.Script
|
|
EOF
|
|
RUN
|
|
|
|
|
|
NAME=rz-bin rust static type
|
|
FILE==
|
|
CMDS=!rz-bin -D rust '_ZN71_$LT$Test$u20$$u2b$$u20$$u27$static$u20$as$u20$foo..Bar$LT$Test$GT$$GT$3barE'
|
|
EXPECT=<<EOF
|
|
<Test + 'static as foo::Bar<Test>>::bar
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -D java
|
|
FILE==
|
|
CMDS=!rz-bin -D java "Fake([BCDFIJSZ)Ltest/class/name;"
|
|
EXPECT=<<EOF
|
|
test.class.name Fake(byte[], char, double, float, int, long, short, boolean)
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -D pascal
|
|
FILE==
|
|
CMDS=!rz-bin -D pascal "EXAMPLE_$$_SUMOFSQUARES$LONGINT$$LONGINT"
|
|
EXPECT=<<EOF
|
|
unit example sumofsquares(longint)longint
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -D Invalid
|
|
FILE==
|
|
CMDS=!rz-bin -D Invalid XXXXX
|
|
EXPECT_ERR=<<EOF
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Language 'Invalid' is unsupported
|
|
List of supported languages:
|
|
java LGPL3 deroad
|
|
msvc LGPL3 inisider
|
|
objc LGPL3 pancake
|
|
pascal LGPL3 deroad
|
|
c++ GPL-2,LGPL3 FSF/deroad
|
|
rust LGPL3 Dhruv Maroo/RizinOrg
|
|
swift MIT pancake
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -h
|
|
FILE=bins/elf/libc.so.0
|
|
CMDS=!rz-bin -h | grep -c Usage
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -O help
|
|
FILE=bins/elf/libc.so.0
|
|
CMDS=!rz-bin -O help | grep -c Usage
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -O h
|
|
FILE=bins/elf/libc.so.0
|
|
CMDS=!rz-bin -O h | grep -c Usage
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -O ?
|
|
FILE=bins/elf/libc.so.0
|
|
CMDS=!rz-bin -O "?" | grep -c Usage
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -O bad op
|
|
FILE==
|
|
CMDS=!rz-bin -O bad_op =
|
|
EXPECT_ERR=<<EOF
|
|
Unknown operation. use -O help
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -v
|
|
FILE==
|
|
CMDS=!rz-bin -v | grep -c commit
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -L
|
|
FILE==
|
|
CMDS=!rz-bin -L | grep -c any
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Lq
|
|
FILE==
|
|
CMDS=!rz-bin -Lq | grep -c any
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Lj
|
|
FILE==
|
|
CMDS=!rz-bin -Lj | grep -c any
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Lj any
|
|
FILE==
|
|
CMDS=!rz-bin -Lj any | grep -c Dummy
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -U
|
|
FILE=bins/pe/resource.exe
|
|
CMDS=!rz-bin -U ${RZ_FILE} | grep -c "Resource 0"
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -E
|
|
FILE=bins/pe/dll.dll
|
|
CMDS=!rz-bin -E ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Exports]
|
|
nth paddr vaddr bind type size lib name
|
|
----------------------------------------------------------
|
|
0 0x00000224 0x01001024 GLOBAL FUNC 0 dll.dll export
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -l
|
|
FILE=bins/pe/ioli/w32/crackme0x00.exe
|
|
CMDS=!rz-bin -l ${RZ_FILE} | grep -c kernel32.dll
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -R
|
|
FILE=bins/pe/base.exe
|
|
CMDS=!rz-bin -R ${RZ_FILE} | grep -c msvcrt.dll___set_app_type
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Z
|
|
FILE=bins/pe/base.exe
|
|
CMDS=!rz-bin -Z ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Size]
|
|
216569
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Zj
|
|
FILE=bins/pe/base.exe
|
|
CMDS=!rz-bin -Zj ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
{"size":216569}
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -H
|
|
FILE=bins/pe/base.exe
|
|
CMDS=!rz-bin -H ${RZ_FILE} | grep -c "Machine"
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -d
|
|
FILE=bins/elf/analysis/dwarftest
|
|
CMDS=!rz-bin -d ${RZ_FILE} | grep -c "0x00400535 /tmp/r2-regressions/./dwarftest.c"
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -dj
|
|
FILE=bins/elf/analysis/dwarftest
|
|
CMDS=!rz-bin -dj ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
{"dwarf":[{"file":"dwarftest.c","line":4,"addr":4195629},{"file":"dwarftest.c","line":7,"addr":4195637},{"file":"dwarftest.c","line":8,"addr":4195646},{"file":"dwarftest.c","line":7,"addr":4195656},{"file":"dwarftest.c","line":7,"addr":4195660},{"file":"dwarftest.c","line":11,"addr":4195666},{"file":"dwarftest.c","line":12,"addr":4195671},{"line":0,"addr":4195673}]}
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -P
|
|
FILE=bins/pdb/Project1.pdb
|
|
CMDS=!rz-bin -P ${RZ_FILE} | grep -c R2_TEST_UNION
|
|
EXPECT=<<EOF
|
|
1
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -Pj
|
|
FILE=bins/pdb/minimal.pdb
|
|
CMDS=<<EOF
|
|
!rz-bin -Pj ${RZ_FILE}~{}
|
|
echo
|
|
EOF
|
|
EXPECT=<<EOF
|
|
{
|
|
"pdb": [
|
|
{
|
|
"modules": [
|
|
{
|
|
"module_name": "* Linker Generated Manifest RES *",
|
|
"object_file_name": ""
|
|
},
|
|
{
|
|
"module_name": "C:\\Users\\emuresan\\source\\repos\\minimal\\Release\\main.obj",
|
|
"object_file_name": "C:\\Users\\emuresan\\source\\repos\\minimal\\Release\\main.obj"
|
|
},
|
|
{
|
|
"module_name": "* Linker *",
|
|
"object_file_name": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"types": [
|
|
{
|
|
"type": "structure",
|
|
"name": "struct_typedef",
|
|
"size": 7,
|
|
"members": [
|
|
{
|
|
"member_type": "char",
|
|
"member_name": "a",
|
|
"offset": 0
|
|
},
|
|
{
|
|
"member_type": "int16_t",
|
|
"member_name": "b",
|
|
"offset": 1
|
|
},
|
|
{
|
|
"member_type": "int32_t",
|
|
"member_name": "c",
|
|
"offset": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "union",
|
|
"name": "type_0x1004",
|
|
"size": 4,
|
|
"members": [
|
|
{
|
|
"member_type": "char [4]",
|
|
"member_name": "a",
|
|
"offset": 0
|
|
},
|
|
{
|
|
"member_type": "int32_t",
|
|
"member_name": "b",
|
|
"offset": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "structure",
|
|
"name": "unnamed_member_types_typedef",
|
|
"size": 8,
|
|
"members": [
|
|
{
|
|
"member_type": "union type_0x1004",
|
|
"member_name": "a",
|
|
"offset": 0
|
|
},
|
|
{
|
|
"member_type": "int32_t",
|
|
"member_name": "b",
|
|
"offset": 4
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "structure",
|
|
"name": "bitfield_typedef",
|
|
"size": 1,
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"type": "union",
|
|
"name": "union_typedef",
|
|
"size": 4,
|
|
"members": [
|
|
{
|
|
"member_type": "char",
|
|
"member_name": "a",
|
|
"offset": 0
|
|
},
|
|
{
|
|
"member_type": "int16_t",
|
|
"member_name": "b",
|
|
"offset": 0
|
|
},
|
|
{
|
|
"member_type": "int32_t",
|
|
"member_name": "c",
|
|
"offset": 0
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"gvars": [
|
|
{
|
|
"address": 12292,
|
|
"symtype": 4366,
|
|
"section_name": ".data",
|
|
"gdata_name": "_uninitialized_global"
|
|
},
|
|
{
|
|
"address": 12288,
|
|
"symtype": 4366,
|
|
"section_name": ".data",
|
|
"gdata_name": "_initialized_global"
|
|
},
|
|
{
|
|
"address": 4096,
|
|
"symtype": 4366,
|
|
"section_name": ".text",
|
|
"gdata_name": "_function"
|
|
},
|
|
{
|
|
"address": 4182,
|
|
"symtype": 4366,
|
|
"section_name": ".text",
|
|
"gdata_name": "_mainCRTStartup"
|
|
},
|
|
{
|
|
"address": 4120,
|
|
"symtype": 4366,
|
|
"section_name": ".text",
|
|
"gdata_name": "_main"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin -S ""
|
|
FILE==
|
|
CMDS=!rz-bin -S ""
|
|
EXPECT_ERR=<<EOF
|
|
Cannot open empty path
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz_bin_prefix is used in symbols
|
|
FILE=bins/elf/analysis/hello-linux-x86_64
|
|
CMDS=<<EOF
|
|
EOF
|
|
EXPECT=<<EOF
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin broken MZ file
|
|
FILE=bins/mz/broken.exe
|
|
CMDS=!rz-bin -zzj ${RZ_FILE} ; echo ""
|
|
EXPECT=<<EOF
|
|
{}
|
|
[{"vaddr":77,"paddr":77,"ordinal":0,"size":45,"length":44,"section":"","type":"ascii","string":"!This program cannot be run in DOS mode.\r\r\n$"},{"vaddr":155,"paddr":155,"ordinal":1,"size":6,"length":5,"section":"","type":"ascii","string":"Q\fb.Q"},{"vaddr":189,"paddr":189,"ordinal":2,"size":5,"length":4,"section":"","type":"ascii","string":"b.Q{"},{"vaddr":205,"paddr":205,"ordinal":3,"size":8,"length":7,"section":"","type":"ascii","string":"b.Q4<*P"},{"vaddr":213,"paddr":213,"ordinal":4,"size":6,"length":5,"section":"","type":"ascii","string":"b.Q4<"},{"vaddr":221,"paddr":221,"ordinal":5,"size":8,"length":7,"section":"","type":"ascii","string":"b.Q4<,P"},{"vaddr":229,"paddr":229,"ordinal":6,"size":8,"length":7,"section":"","type":"ascii","string":"b.QRich"},{"vaddr":241,"paddr":241,"ordinal":7,"size":30,"length":29,"section":"","type":"ascii","string":"https://malwarec2.com/drd.exe"}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-bin load elf but with str.search.min_length=2
|
|
FILE=bins/elf/smallstrings.elf
|
|
CMDS=!rz-bin -z -N2 ${RZ_FILE}
|
|
EXPECT=<<EOF
|
|
[Strings]
|
|
nth paddr vaddr len size section type string
|
|
--------------------------------------------------------
|
|
0 0x00002006 0x00002006 2 3 .rodata ascii 22
|
|
1 0x00002009 0x00002009 3 4 .rodata ascii 333
|
|
2 0x0000200d 0x0000200d 4 5 .rodata ascii 4444
|
|
|
|
EOF
|
|
RUN
|