radare2/test/db/cmd/cmd_px

414 lines
28 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NAME=pxr4
FILE=malloc://1024
CMDS=<<EOF
e asm.arch=x86
e asm.bits=64
woe 1 255
s+11
b 8
pxr8
pxr4
pxr2
pxr1
b 4
pxr8
pxr4
pxr2
pxr1
b 2
pxr8
pxr4
pxr2
pxr1
pxr2
b 1
pxr8
pxr4
pxr2
pxr1
EOF
EXPECT=<<EOF
0x0000000b 0x0101010101010101 ........
0x0000000b 0x01010101 .... 16843009
0x0000000f 0x01010101 .... 16843009
0x0000000b 0101 .. 257 R W X 'add byte [rax], al'
0x0000000d 0101 .. 257 R W X 'add byte [rax], al'
0x0000000f 0101 .. 257 R W X 'add byte [rax], al'
0x00000011 0101 .. 257 R W X 'add byte [rax], al'
- offset - 0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000d 001 .
0x0000000e 001 .
0x0000000f 001 .
0x00000010 001 .
0x00000011 001 .
0x00000012 001 .
0x0000000b 0x0000000001010101 ....
0x0000000b 0x01010101 .... 16843009
0x0000000b 0101 .. 257 R W X 'add byte [rax], al'
0x0000000d 0101 .. 257 R W X 'add byte [rax], al'
- offset - 0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000d 001 .
0x0000000e 001 .
0x0000000b 0x0000000000000101 ..
0x0000000b 0x00000101 ..
0x0000000b 0101 .. 257 R W X 'add byte [rax], al'
- offset - 0 0
0x0000000b 001 .
0x0000000c 001 .
0x0000000b 0101 .. 257 R W X 'add byte [rax], al'
0x0000000b 0x0000000000000001 .
0x0000000b 0x00000001 .
0x0000000b 01 .
- offset - 0 0
0x0000000b 001 .
EOF
RUN
NAME=px 10
FILE=malloc://1024
CMDS=wx 90909090909090909090 ; px 10
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00000000 9090 9090 9090 9090 9090 ..........
EOF
RUN
NAME=px -10
FILE=malloc://1024
CMDS=wx 90909090909090909090 ; s 10 ; px -10
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00000000 9090 9090 9090 9090 9090 ..........
EOF
RUN
NAME=pxd 16
FILE=malloc://1024
CMDS=<<EOF
wx 1020ffff30400000
pxd 16
EOF
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00000000 -57328 16432 0 0 . ..0@..........
EOF
RUN
NAME=pxd 8
FILE=malloc://1024
CMDS=<<EOF
wx 1020ffff30400000
pxd 8
EOF
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00000000 -57328 16432 . ..0@..
EOF
RUN
NAME=io.unalloc, io.unalloc.ch and pxc
FILE=bins/elf/analysis/tiny.elf
CMDS=<<EOF
. scripts/palette.r2
e io.unalloc=true
(dump; xc 0x00010060-0x0000ffd0 @ 0x0000ffd0-6)
e scr.color=3
e hex.comments=true
.(dump)
?e
e scr.color=0
.(dump)
?e
e hex.comments=false
e io.unalloc.ch=?
.(dump)
?e
e io.unalloc.ch=
.(dump)
EOF
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF comment
0x0000ffca .... .... .... .... .... .... .... ....                 
0x0000ffda .... .... .... .... .... .... .... ....                 
0x0000ffea .... .... .... .... .... .... .... ....                 
0x0000fffa .... .... .... 7f45 4c46 0100 0000 0000       .ELF...... ; segment.ehdr ; [01] -rw- segment size 45 named ehdr
0x0001000a 0000 0000 0100 0200 0300 2000 0100 2000 .......... ... .
0x0001001a 0100 0400 0000 b32a 31c0 40cd 8000 3400 .......*1.@...4. ; entry0
0x0001002a 2000 0100 0000 0000 0000 0000 0000 0000  ...............
0x0001003a 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0001004a 0000 0000 0000 0000 0000 0000 0000 0000 ................
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF comment
0x0000ffca .... .... .... .... .... .... .... ....
0x0000ffda .... .... .... .... .... .... .... ....
0x0000ffea .... .... .... .... .... .... .... ....
0x0000fffa .... .... .... 7f45 4c46 0100 0000 0000 .ELF...... ; segment.ehdr ; [01] -rw- segment size 45 named ehdr
0x0001000a 0000 0000 0100 0200 0300 2000 0100 2000 .......... ... .
0x0001001a 0100 0400 0000 b32a 31c0 40cd 8000 3400 .......*1.@...4. ; entry0
0x0001002a 2000 0100 0000 0000 0000 0000 0000 0000 ...............
0x0001003a 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0001004a 0000 0000 0000 0000 0000 0000 0000 0000 ................
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x0000ffca ???? ???? ???? ???? ???? ???? ???? ????
0x0000ffda ???? ???? ???? ???? ???? ???? ???? ????
0x0000ffea ???? ???? ???? ???? ???? ???? ???? ????
0x0000fffa ???? ???? ???? 7f45 4c46 0100 0000 0000 .ELF......
0x0001000a 0000 0000 0100 0200 0300 2000 0100 2000 .......... ... .
0x0001001a 0100 0400 0000 b32a 31c0 40cd 8000 3400 .......*1.@...4.
0x0001002a 2000 0100 0000 0000 0000 0000 0000 0000 ...............
0x0001003a 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0001004a 0000 0000 0000 0000 0000 0000 0000 0000 ................
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x0000ffca
0x0000ffda
0x0000ffea
0x0000fffa 7f45 4c46 0100 0000 0000 .ELF......
0x0001000a 0000 0000 0100 0200 0300 2000 0100 2000 .......... ... .
0x0001001a 0100 0400 0000 b32a 31c0 40cd 8000 3400 .......*1.@...4.
0x0001002a 2000 0100 0000 0000 0000 0000 0000 0000 ...............
0x0001003a 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0001004a 0000 0000 0000 0000 0000 0000 0000 0000 ................
EOF
RUN
NAME=pxr
FILE=bins/elf/crackme
CMDS=<<EOF
pxr 48 @ 0x00600ae0
?e ===
pxr 24 @ 0x00600ae0+32
EOF
EXPECT=<<EOF
0x00600ae0 0x000000000040055e ^.@..... @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae8 0x000000000040056e n.@..... @ reloc.puts 4195694 .plt R X 'push 1'
0x00600af0 0x000000000040057e ~.@..... @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af8 0x000000000040058e ..@..... @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600b00 0x000000000040059e ..@..... @ reloc.strcmp 4195742 .plt R X 'push 4'
0x00600b08 0x00000000004005ae ..@..... @ reloc.fflush 4195758 .plt R X 'push 5'
===
0x00600b00 0x000000000040059e ..@..... @ reloc.strcmp 4195742 .plt R X 'push 4'
0x00600b08 0x00000000004005ae ..@..... @ reloc.fflush 4195758 .plt R X 'push 5'
0x00600b10 ..[ null bytes ].. 00000000 loc.__data_start
EOF
RUN
NAME=pxr1248
FILE=bins/elf/crackme
CMDS=<<EOF
pxr4 32@0x00600ae0
pxr8 32@0x00600ae0
pxr2 32@0x00600ae0
e asm.bits=32
pxr 32@0x00600ae0
pxr2j 16@0x00600ae0~{}
EOF
EXPECT=<<EOF
0x00600ae0 0x0040055e ^.@. @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae4 ..[ null bytes ].. 00000000
0x00600ae8 0x0040056e n.@. @ reloc.puts 4195694 .plt R X 'push 1'
0x00600aec ..[ null bytes ].. 00000000
0x00600af0 0x0040057e ~.@. @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af4 ..[ null bytes ].. 00000000
0x00600af8 0x0040058e ..@. @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600afc ..[ null bytes ].. 00000000
0x00600ae0 0x000000000040055e ^.@..... @ reloc.printf 4195678 .plt R X 'push 0'
0x00600ae8 0x000000000040056e n.@..... @ reloc.puts 4195694 .plt R X 'push 1'
0x00600af0 0x000000000040057e ~.@..... @ reloc.__libc_start_main 4195710 .plt R X 'push 2'
0x00600af8 0x000000000040058e ..@..... @ reloc.fgets 4195726 .plt R X 'push 3'
0x00600ae0 5e05 ^. @ reloc.printf 1374 .symtab
0x00600ae2 4000 @. 64 .shstrtab elf_phdr ascii ('@')
0x00600ae4 0000 ..
0x00600ae6 0000 ..
0x00600ae8 6e05 n. @ reloc.puts 1390 .symtab
0x00600aea 4000 @. 64 .shstrtab elf_phdr ascii ('@')
0x00600aec 0000 ..
0x00600aee 0000 ..
0x00600af0 7e05 ~. @ reloc.__libc_start_main 1406 .symtab
0x00600af2 4000 @. 64 .shstrtab elf_phdr ascii ('@')
0x00600af4 0000 ..
0x00600af6 0000 ..
0x00600af8 8e05 .. @ reloc.fgets 1422 .symtab
0x00600afa 4000 @. 64 .shstrtab elf_phdr ascii ('@')
0x00600afc 0000 ..
0x00600afe 0000 ..
0x00600ae0 0x0040055e ^.@. @ reloc.printf .plt R X 'push 0'
0x00600ae4 ..[ null bytes ].. 00000000
0x00600ae8 0x0040056e n.@. @ reloc.puts .plt R X 'push 1'
0x00600aec ..[ null bytes ].. 00000000
0x00600af0 0x0040057e ~.@. @ reloc.__libc_start_main .plt R X 'push 2'
0x00600af4 ..[ null bytes ].. 00000000
0x00600af8 0x0040058e ..@. @ reloc.fgets .plt R X 'push 3'
0x00600afc ..[ null bytes ].. 00000000
[
{
"addr": 6294240,
"value": 1374,
"refstr": "1374 .symtab",
"ref": {
"addr": 1374,
"value": "1374",
"section": ".symtab"
}
},
{
"addr": 6294242,
"value": 64,
"refstr": "64 .shstrtab elf_phdr ascii ('@')",
"ref": {
"addr": 64,
"value": "64",
"section": ".shstrtab",
"flags": [
"elf_phdr"
],
"attr": [
"ascii"
]
}
},
{
"addr": 6294244,
"value": 0,
"refstr": "0",
"ref": {
"addr": 0,
"value": "0",
"attr": [
]
}
},
{
"addr": 6294246,
"value": 0,
"refstr": "0",
"ref": {
"addr": 0,
"value": "0",
"attr": [
]
}
},
{
"addr": 6294248,
"value": 1390,
"refstr": "1390 .symtab",
"ref": {
"addr": 1390,
"value": "1390",
"section": ".symtab"
}
},
{
"addr": 6294250,
"value": 64,
"refstr": "64 .shstrtab elf_phdr ascii ('@')",
"ref": {
"addr": 64,
"value": "64",
"section": ".shstrtab",
"flags": [
"elf_phdr"
],
"attr": [
"ascii"
]
}
},
{
"addr": 6294252,
"value": 0,
"refstr": "0",
"ref": {
"addr": 0,
"value": "0",
"attr": [
]
}
}
]
EOF
RUN
NAME=pxe
FILE=-
CMDS=<<EOF
woe 0 0xff 1
pxe 256
EOF
EXPECT=<<EOF
0x00000000 🌀 🌂 🌅 🌈 🌙 🌞 🌟 🌠 🌰 🌱 🌲 🌳 🌴 🌵 🌷 🌸 ................
0x00000010 🌹 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🍅 🍆 🍇 🍈 ................
0x00000020 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 !"#$%&'()*+,-./
0x00000030 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 0123456789:;<=>?
0x00000040 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻 @ABCDEFGHIJKLMNO
0x00000050 🍼 🎀 🎁 🎂 🎃 🎄 🎅 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎒 PQRSTUVWXYZ[\]^_
0x00000060 🎓 🎠 🎡 🎢 🎣 🎤 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮 `abcdefghijklmno
0x00000070 🎯 🎰 🎱 🎲 🎳 🎴 🎵 🎷 🎸 🎹 🎺 🎻 🎽 🎾 🎿 🏀 pqrstuvwxyz{|}~.
0x00000080 🏁 🏂 🏃 🏄 🏆 🏇 🏈 🏉 🏊 🐀 🐁 🐂 🐃 🐄 🐅 🐆 ................
0x00000090 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖 ................
0x000000a0 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦 ................
0x000000b0 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶 ................
0x000000c0 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 👀 👂 👃 👄 👅 👆 👇 👈 ................
0x000000d0 👉 👊 👋 👌 👍 👎 👏 👐 👑 👒 👓 👔 👕 👖 👗 👘 ................
0x000000e0 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 👣 👤 👥 👦 👧 👨 ................
0x000000f0 👩 👪 👮 👯 👺 👻 👼 👽 👾 👿 💀 💁 💂 💃 💄 💅 ................
EOF
RUN
NAME=hexdump colorized by optype
FILE=bins/elf/ls
CMDS=<<EOF
e scr.color = 3
e scr.color.ophex=true
x 64
e anal.hasnext=true
afr
x 64
pD 65
EOF
EXPECT=<<EOF
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00005ae0 f30f 1efa 31ed 4989 d15e 4889 e248 83e4 ....1.I..^H..H..
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
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x00005ae0 f30f 1efa 31ed 4989 d15e 4889 e248 83e4 ....1.I..^H..H..
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
/ 46: entry0 (int64_t arg3);
| ; arg int64_t arg3 @ rdx
| 0x00005ae0 f30f1efa endbr64
| 0x00005ae4 31ed xor ebp, ebp
| 0x00005ae6 4989d1 mov r9, rdx ; arg3
| 0x00005ae9 5e pop rsi
| 0x00005aea 4889e2 mov rdx, rsp
| 0x00005aed 4883e4f0 and rsp, 0xfffffffffffffff0
| 0x00005af1 50 push rax
| 0x00005af2 54 push rsp
| 0x00005af3 4c8d05660c01. lea r8, [0x00016760]
| 0x00005afa 488d0def0b01. lea rcx, [0x000166f0]
| 0x00005b01 488d3d68e5ff. lea rdi, main ; 0x4070 ; "AWAVAUATU\x89\xfdSH\x89\xf3H\x83\xecXH\x8b>dH\x8b\x04%("
\ 0x00005b08 ff150ac30100 call qword [reloc.__libc_start_main] ; [0x21e18:8]=0
0x00005b0e f4 hlt
0x00005b0f 90 nop
; CALL XREF from entry.fini0 @ 0x5ba8
/ 34: fcn.00005b0e ();
| 0x00005b10 488d3d51c701. lea rdi, loc._edata ; loc.__bss_start
|  ; 0x22268
| 0x00005b17 488d054ac701. lea rax, loc._edata ; loc.__bss_start
|  ; 0x22268
| 0x00005b1e 4839f8 cmp rax, rdi
EOF
RUN