2019-12-08 14:31:14 +00:00
|
|
|
NAME=endian tests: pv4
|
|
|
|
FILE=-
|
|
|
|
CMDS=<<EOF
|
|
|
|
e cfg.bigendian=false
|
|
|
|
e asm.bits=32
|
|
|
|
wx 01020304
|
|
|
|
pv4
|
|
|
|
e cfg.bigendian=true
|
|
|
|
pv4
|
|
|
|
EOF
|
2020-04-05 12:56:06 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
0x04030201
|
|
|
|
0x01020304
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=endian tests: pv2
|
|
|
|
FILE=-
|
|
|
|
CMDS=<<EOF
|
|
|
|
e cfg.bigendian=false
|
|
|
|
e asm.bits=32
|
|
|
|
wx 01020304
|
|
|
|
pv2
|
|
|
|
e cfg.bigendian=true
|
|
|
|
pv2
|
|
|
|
EOF
|
2020-04-05 12:56:06 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
0x0201
|
|
|
|
0x0102
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=endian tests: pv8
|
|
|
|
FILE=-
|
|
|
|
CMDS=<<EOF
|
|
|
|
e cfg.bigendian=false
|
|
|
|
e asm.bits=32
|
|
|
|
wx 0102030405060708
|
|
|
|
pv8
|
|
|
|
e cfg.bigendian=true
|
|
|
|
pv8
|
|
|
|
EOF
|
2020-04-05 12:56:06 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
0x0807060504030201
|
|
|
|
0x0102030405060708
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=endian tests: ?v
|
|
|
|
FILE=-
|
|
|
|
CMDS=<<EOF
|
|
|
|
e cfg.bigendian=false
|
|
|
|
e asm.bits=32
|
|
|
|
wx 01020304
|
|
|
|
?v [$$]
|
|
|
|
e cfg.bigendian=true
|
|
|
|
?v [$$]
|
|
|
|
EOF
|
2020-04-05 12:56:06 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
0x4030201
|
|
|
|
0x1020304
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=pfq
|
|
|
|
CMDS=<<EOF
|
|
|
|
wv4 32
|
|
|
|
pfq i
|
|
|
|
EOF
|
|
|
|
EXPECT=<<EOF
|
|
|
|
32
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
2020-09-21 14:58:07 +00:00
|
|
|
NAME=MIPS new abi
|
|
|
|
FILE=bins/elf/analysis/mips64r2-busybox-loongson
|
|
|
|
CMDS=<<EOF
|
|
|
|
e asm.arch=mips.gnu
|
|
|
|
s 0x120005978
|
|
|
|
pd 6
|
|
|
|
EOF
|
|
|
|
EXPECT=<<EOF
|
|
|
|
0x120005978 1800bfff sd ra, 24(sp)
|
|
|
|
0x12000597c 3800a7ff sd a3, 56(sp)
|
|
|
|
0x120005980 4000a8ff sd a4, 64(sp)
|
|
|
|
0x120005984 4800a9ff sd a5, 72(sp)
|
|
|
|
0x120005988 5000aaff sd a6, 80(sp)
|
|
|
|
0x12000598c 5800abff sd a7, 88(sp)
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
2021-05-25 07:20:21 +00:00
|
|
|
NAME=mac ls asm.sub.jmp
|
|
|
|
FILE=bins/mach0/mac-ls
|
|
|
|
CMDS=<<EOF
|
|
|
|
f jeje.lolo=0x10000108a
|
|
|
|
e asm.sub.jmp = false
|
|
|
|
pd 20~7f
|
|
|
|
e asm.sub.jmp = true
|
|
|
|
pd 20~7f
|
|
|
|
EOF
|
|
|
|
EXPECT=<<EOF
|
|
|
|
,=< 0x100001083 7f05 jg 0x10000108a
|
2021-07-18 17:37:36 +00:00
|
|
|
`-> 0x10000108a 488d357f3a00. lea rsi, [0x100004b10] ; section.4.__TEXT.__cstring
|
2021-05-25 07:20:21 +00:00
|
|
|
,=< 0x100001083 7f05 jg jeje.lolo
|
|
|
|
`-> 0x10000108a 488d357f3a00. lea rsi, section.4.__TEXT.__cstring ; 0x100004b10
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
2019-12-08 14:31:14 +00:00
|
|
|
NAME=mac ls pdsf
|
2020-04-13 17:49:23 +00:00
|
|
|
FILE=bins/mach0/mac-ls
|
2020-04-05 12:56:06 +00:00
|
|
|
CMDS=<<EOF
|
|
|
|
af
|
|
|
|
pdsf @ entry0
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
;-- entry0:
|
|
|
|
;-- func.100001058:
|
|
|
|
0x10000106c argv
|
|
|
|
0x10000106f argc
|
|
|
|
0x100001085 call sym.func.100004401
|
|
|
|
0x100001093 call sym.imp.setlocale
|
|
|
|
0x1000010a3 call sym.imp.isatty
|
|
|
|
0x1000054e0 [10] -rw- section size 40 named 10.__DATA.__data
|
|
|
|
0x1000010b6 str.COLUMNS
|
|
|
|
0x1000010bd call sym.imp.getenv
|
|
|
|
0x1000010cf call sym.imp.atoi
|
|
|
|
0x1000010e6 call sym.imp.ioctl
|
|
|
|
0x10000110d str.COLUMNS
|
|
|
|
0x100001114 call sym.imp.getenv
|
|
|
|
0x100001121 call sym.imp.atoi
|
|
|
|
0x10000112c call sym.imp.getuid
|
|
|
|
0x1000011b5 switch table (72 cases) at 0x10000192c
|
|
|
|
;-- default: ; from 0x1000011b5
|
|
|
|
0x10000116e call sym.func.100004401
|
|
|
|
0x100001179 str.1_ABCFGHLOPRSTUWabcdefghiklmnopqrstuvwx
|
|
|
|
0x100001186 call sym.imp.getopt
|
|
|
|
;-- switch
|
|
|
|
0x100001233 str.CLICOLOR
|
|
|
|
0x100001246 call sym.imp.setenv
|
|
|
|
0x100001253 str.bin_ls
|
|
|
|
0x10000125a str.Unix2003
|
|
|
|
0x100001261 call sym.imp.compat_mode
|
|
|
|
0x10000128c str.bin_ls
|
|
|
|
0x100001293 str.Unix2003
|
|
|
|
0x10000129a call sym.imp.compat_mode
|
|
|
|
0x1000013a2 str.bin_ls
|
|
|
|
0x1000013a9 str.Unix2003
|
|
|
|
0x1000013b0 call sym.imp.compat_mode
|
|
|
|
0x1000013d3 str.bin_ls
|
|
|
|
0x1000013da str.Unix2003
|
|
|
|
0x1000013e1 call sym.imp.compat_mode
|
|
|
|
0x10000143a str.bin_ls
|
|
|
|
0x100001441 str.Unix2003
|
|
|
|
0x100001448 call sym.imp.compat_mode
|
|
|
|
0x10000145a str.bin_ls
|
|
|
|
0x100001461 str.Unix2003
|
|
|
|
0x100001468 call sym.imp.compat_mode
|
|
|
|
0x1000015b4 str.CLICOLOR
|
|
|
|
0x1000015bb call sym.imp.getenv
|
|
|
|
0x1000015ce call sym.imp.isatty
|
|
|
|
0x1000015d7 str.CLICOLOR_FORCE
|
|
|
|
0x1000015de call sym.imp.getenv
|
|
|
|
0x1000015ec str.TERM
|
|
|
|
0x1000015f3 call sym.imp.getenv
|
|
|
|
0x100001602 call sym.imp.tgetent
|
|
|
|
0x100001621 call sym.imp.tgetstr
|
|
|
|
0x100001637 call sym.imp.tgetstr
|
|
|
|
0x10000164d call sym.imp.tgetstr
|
|
|
|
0x100001663 call sym.imp.tgetstr
|
|
|
|
0x100001679 call sym.imp.tgetstr
|
|
|
|
0x100001698 call sym.imp.tgetstr
|
|
|
|
0x1000016e1 sym.func.100003b48
|
|
|
|
0x1000016ed sym.func.100003b48
|
|
|
|
0x1000016f0 call sym.imp.signal
|
|
|
|
0x1000016fa sym.func.100003b48
|
|
|
|
0x1000016fd call sym.imp.signal
|
|
|
|
0x100001702 str.LSCOLORS
|
|
|
|
0x100001709 call sym.imp.getenv
|
|
|
|
0x100001711 call sym.func.1000039b6
|
|
|
|
0x1000017a2 call sym.imp.getbsize
|
|
|
|
0x1000017e6 sym.func.100000f58
|
|
|
|
0x1000017fb sym.func.100000f8a
|
|
|
|
0x100001810 sym.func.100000d78
|
|
|
|
0x100001825 sym.func.100000d8a
|
|
|
|
0x100001849 sym.func.100000d9f
|
|
|
|
0x10000186d sym.func.100000de4
|
|
|
|
0x100001876 sym.func.100000e32
|
|
|
|
0x10000187f sym.func.100000e77
|
|
|
|
0x100001888 sym.func.100000ec5
|
|
|
|
0x100001891 sym.func.100000f0a
|
|
|
|
0x10000189a sym.func.100000fc5
|
|
|
|
0x1000018a3 sym.func.10000100a
|
|
|
|
0x1000018c8 sym.func.1000036a2
|
|
|
|
0x1000018d1 sym.func.100002800
|
|
|
|
0x1000018da sym.func.1000029f1
|
|
|
|
0x1000018e3 sym.func.1000035d0
|
|
|
|
0x10000191a call sym.func.100001a4c
|
|
|
|
0x100001926 call sym.imp.exit
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=mac ls pfc
|
2020-04-13 17:49:23 +00:00
|
|
|
FILE=bins/mach0/mac-ls
|
2020-04-05 12:56:06 +00:00
|
|
|
CMDS=pfc zdq foo bar cow
|
2019-12-08 14:31:14 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
struct {
|
|
|
|
char* foo; // "UH..AWAVAUATSH..H."
|
|
|
|
int32_t bar; // 4085860352
|
|
|
|
uint64_t cow; // -450213120875525823
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=mac ls pfc.fmt
|
2020-04-13 17:49:23 +00:00
|
|
|
FILE=bins/mach0/mac-ls
|
2020-04-05 12:56:06 +00:00
|
|
|
CMDS=<<EOF
|
|
|
|
pf.fmt bcFiuf foo bar baz cow one two
|
|
|
|
pfc.fmt
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
struct fmt {
|
|
|
|
uint8_t foo; // 85
|
|
|
|
int8_t bar; // "H"
|
|
|
|
double baz; // 4.8537884927073429e+102
|
|
|
|
int32_t cow; // 0x48535441
|
|
|
|
uleb128_t one; // "1193473"
|
|
|
|
float two; // 131072.094
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
RUN
|
|
|
|
|
|
|
|
NAME=elf 64bit ls pfc.elf_header
|
2020-04-13 17:49:23 +00:00
|
|
|
FILE=bins/elf/ls
|
2020-04-05 12:56:06 +00:00
|
|
|
CMDS=<<EOF
|
|
|
|
s 0
|
|
|
|
pfo elf64
|
|
|
|
pfc elf_header
|
|
|
|
EOF
|
2019-12-08 14:31:14 +00:00
|
|
|
EXPECT=<<EOF
|
|
|
|
struct elf_header {
|
|
|
|
struct ident {
|
|
|
|
char* magic; // ".ELF"
|
|
|
|
enum class; // ELFCLASS64
|
|
|
|
enum data; // ELFDATA2LSB
|
|
|
|
enum version; // EV_CURRENT
|
|
|
|
}
|
|
|
|
enum type; // ET_DYN
|
|
|
|
enum machine; // EM_X86_64
|
|
|
|
enum version; // EV_CURRENT
|
|
|
|
uint64_t entry; // 23264
|
|
|
|
uint64_t phoff; // 64
|
|
|
|
uint64_t shoff; // 136040
|
|
|
|
int32_t flags; // 0x00000000
|
2020-06-02 02:27:58 +00:00
|
|
|
uint16_t ehsize; // 64
|
|
|
|
uint16_t phentsize; // 56
|
|
|
|
uint16_t phnum; // 11
|
|
|
|
uint16_t shentsize; // 64
|
|
|
|
uint16_t shnum; // 25
|
|
|
|
uint16_t shstrndx; // 24
|
2019-12-08 14:31:14 +00:00
|
|
|
}
|
|
|
|
EOF
|
|
|
|
RUN
|