Use rz_read_le32() in the x86/x64 egg emitter so 4-byte string immediates are no longer byte-reversed on big-endian hosts (System Z/s390); little-endian output is unchanged. Regenerate the stale 32-bit x86 (#1889) and 32-bit arm rz-gg goldens to match the tool's actual output, drop BROKEN markers from the simple_cmp tests that already pass, and annotate the remaining broken tests (no AArch64 egg backend; compiler-dependent C output) with the reason. Closes #3486 Closes #1889 Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
676 lines
No EOL
20 KiB
Text
676 lines
No EOL
20 KiB
Text
NAME=rz-gg -a x86 -b 64 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 64 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 64 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 64 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 64 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 64 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -a x86 -b32
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k linux -a x86 -b32
|
|
EXPECT=<<EOF
|
|
"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -i exec -a x86 -b32 -p n3N3
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -i exec -a x86 -b32 -p n3N3
|
|
EXPECT=<<EOF
|
|
90909031c050682f2f7368682f62696e89e3505389e199b00bcd80909090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a x86 -b32 -p n80 -w 79:c3
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -a x86 -b32 -p n80 -w 79:c3
|
|
EXPECT=<<EOF
|
|
90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090c3
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -q 0x45414146
|
|
TOOL=rz-gg
|
|
ARGS=-q 0x45414146
|
|
EXPECT=<<EOF
|
|
Little endian: -1
|
|
Big endian: 12
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -q 45414146
|
|
TOOL=rz-gg
|
|
ARGS=-q 45414146
|
|
EXIT_STATUS=1
|
|
EXPECT=
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: rz-gg: need hex value with `0x' prefix e.g. 0x41414142
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a x86 -b32 simple_cmp.r
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -a x86 -b32 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
5589e581ec80000000c745086869210ac7450c00000000c74510000000008d4508898504000000bb00000000bb01000000899d05000000bb00000000bb02000000899d06000000ff7504583b45067f1e6a04ff75046a018b1c248b4c24048b542408b804000000cd8083c40ceb176a008b1c24b801000000cd8083c40481c4800000005dc3ebe7
|
|
EOF
|
|
RUN
|
|
|
|
#CLANG=e900000000488d3524000000bf01000000b80400000248c7c2070000000f05b80100000248c7c7000000000f0531c0c348656c6c6f210a00
|
|
NAME=rz-ggc bins/other/rz-gg/hi.c
|
|
BROKEN=1 # output depends on host C compiler/version
|
|
TOOL=rz-gg
|
|
ARGS=bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
e90800000048656c6c6f210a00bf01000000488d35ecffffffba07000000b8010000000f05b83c0000004030ff0f05c3
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -L
|
|
TOOL=rz-gg
|
|
ARGS=-L
|
|
REGEXP_FILTER_OUT=encoders.+
|
|
EXPECT=<<EOF
|
|
encoders:
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg empty include
|
|
FILE=bins/other/rz-gg/hi.c
|
|
CMDS=!rz-gg -I "" bins/other/rz-gg/hi.c
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: rz-gg: cannot open empty include path
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg empty contents
|
|
FILE=bins/other/rz-gg/hi.c
|
|
CMDS=!rz-gg -C "" bins/other/rz-gg/hi.c
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: rz-gg: cannot open empty contents path
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg debruijn sequence 1
|
|
TOOL=rz-gg
|
|
ARGS=-r -P 2
|
|
EXPECT=AA
|
|
RUN
|
|
|
|
NAME=rz-gg debruijn sequence 2
|
|
TOOL=rz-gg
|
|
ARGS=-P 2 -r
|
|
EXPECT=AA
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a x86 -b 32 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 32 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -a x86 -b64
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k linux -a x86 -b64
|
|
EXPECT=<<EOF
|
|
"\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -i exec -a x86 -b64 -p n3N3
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -i exec -a x86 -b64 -p n3N3
|
|
EXPECT=<<EOF
|
|
90909031c048bbd19d9691d08c97ff48f7db53545f995257545eb03b0f05909090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a x86 -b64 simple_cmp.r
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -a x86 -b64 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
554889e54881ec80000000c745106869210ac7451400000000c7451800000000488d45104889850800000048c7c70000000048c7c7010000004889bd0900000048c7c70000000048c7c7020000004889bd0a000000488b45085058483b450a7f3248c7c00400000050488b45085048c7c00100000050488b3c24488b742408488b54241048c7c0040000000f054883c418eb2248c7c00000000050488b3c2448c7c0010000000f054883c4084881c4800000005dc3ebdc
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a x86 -b 64 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # output depends on host C compiler/version
|
|
TOOL=rz-gg
|
|
ARGS=-a x86 -b 64 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 32 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -a arm -b 32
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k linux -a arm -b 32
|
|
EXPECT=<<EOF
|
|
"\x02\x20\x42\xe0\x1c\x30\x8f\xe2\x04\x30\x8d\xe5\x08\x20\x8d\xe5\x13\x02\xa0\xe1\x07\x20\xc3\xe5\x04\x30\x8f\xe2\x04\x10\x8d\xe2\x01\x20\xc3\xe5\x0b\x0b\x90\xef\x2f\x62\x69\x6e\x2f\x73\x68"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -i exec -a arm -b 32 -p n3N3
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -i exec -a arm -b 32 -p n3N3
|
|
EXPECT=<<EOF
|
|
909090022042e01c308fe204308de508208de51302a0e10720c3e504308fe204108de20120c3e50b0b90ef2f62696e2f7368909090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a arm -b 32 simple_cmp.r
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -a arm -b 32 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
00482de904b08de280d04de204f08fe26869210a0000000000000000000000000010004fe207008de50010a0e30110a0e308d0a0e30010a0e30210a0e309d0a0e30000bde809005de3090000ca0400a0e30c008de50100a0e314008de508109de50c209de514309de50470a0e3000000ef060000ea0000a0e30c008de508109de50170a0e3000000ef80d08be20088bde8f7ffffea
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a arm -b 32 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # output depends on host C compiler/version
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 32 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -a arm -b 64 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -a arm -b 64
|
|
BROKEN=1 # RzEgg exec encoder has no arm64 shellcode
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k linux -a arm -b 64
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -i exec -a arm -b 64 -p n3N3
|
|
BROKEN=1 # RzEgg exec encoder has no arm64 shellcode
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -i exec -a arm -b 64 -p n3N3
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a arm -b 64 simple_cmp.r
|
|
BROKEN=1 # RzEgg has no AArch64 backend: emits AArch32 (push {fp,lr})
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -a arm -b 64 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -a arm -b 64 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # no AArch64 egg backend; also compiler-dependent
|
|
TOOL=rz-gg
|
|
ARGS=-a arm -b 64 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -k darwin -a x86 -b 32
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k linux -k darwin -a x86 -b 32
|
|
EXPECT=<<EOF
|
|
"\x41\xb0\x02\x49\xc1\xe0\x18\x49\x83\xc8\x17\xeb\x12\x5f\x49\x83\xc0\x24\x4c\x89\xc0\x48\x31\xd2\x52\x57\x48\x89\xe6\x0f\x05\xe8\xe9\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -k darwin -a x86 -b 32 -p n3N3
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -k darwin -a x86 -b 32 -p n3N3
|
|
EXPECT=<<EOF
|
|
90909041b00249c1e0184983c817eb125f4983c0244c89c04831d252574889e60f05e8e9ffffff2f62696e2f7368909090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 simple_cmp.r
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
5589e581ec80000000c745086869210ac7450c00000000c74510000000008d4508898504000000bb00000000bb01000000899d05000000bb00000000bb02000000899d06000000ff7504583b45067f226a04ff75046a018b1c248b4c24048b542408b80400000050cd8083c40483c40ceb1b6a008b1c24b80100000050cd8083c40483c40481c4800000005dc3ebe3
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 simple_cmp.r
|
|
FILE==
|
|
CMDS=<<EOF
|
|
!rz-gg -k darwin -a x86 -b 32 -o /dev/null bins/other/rz-gg/simple_cmp.r
|
|
%v $?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x0
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 32 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # output depends on host C compiler/version
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 32 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -k darwin -a x86 -b 64
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k darwin -a x86 -b 64
|
|
EXPECT=<<EOF
|
|
"\x41\xb0\x02\x49\xc1\xe0\x18\x49\x83\xc8\x17\xeb\x12\x5f\x49\x83\xc0\x24\x4c\x89\xc0\x48\x31\xd2\x52\x57\x48\x89\xe6\x0f\x05\xe8\xe9\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k linux -i exec -a x86 -b 64 -p n3N3
|
|
TOOL=rz-gg
|
|
ARGS=-k linux -i exec -a x86 -b 64 -p n3N3
|
|
EXPECT=<<EOF
|
|
90909031c048bbd19d9691d08c97ff48f7db53545f995257545eb03b0f05909090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 simple_cmp.r
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
554889e54881ec80000000c745106869210ac7451400000000c7451800000000488d45104889850800000048c7c70000000048c7c7010000004889bd0900000048c7c70000000048c7c7020000004889bd0a000000488b45085058483b450a7f3248c7c00400000050488b45085048c7c00100000050488b3c24488b742408488b54241048c7c0040000000f054883c418eb2248c7c00000000050488b3c2448c7c0010000000f054883c4084881c4800000005dc3ebdc
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a x86 -b 64 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # output depends on host C compiler/version
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a x86 -b 64 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p A200 -d 50:0xccccccb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p A200 -d 50:0xccccccb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cbcccc0c4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p A200 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p A200 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141cb0000004141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p A10 -d 50:0xcb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p A10 -d 50:0xcb
|
|
EXPECT=<<EOF
|
|
41414141414141414141
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: egg: cannot patch outside
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p A20 -w 10:cb
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p A20 -w 10:cb
|
|
EXPECT=<<EOF
|
|
41414141414141414141cb414141414141414141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p A20 -D 10:33
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p A20 -D 10:33
|
|
EXPECT=<<EOF
|
|
4141414141414141414121000000000000004141
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 -p n2t2a2s2
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 -p n2t2a2s2
|
|
EXPECT=<<EOF
|
|
00004141cccc9090
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -z -k darwin -a arm -b 64
|
|
BROKEN=1 # RzEgg exec encoder has no arm64 shellcode
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -z -k darwin -a arm -b 64
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -i exec -k darwin -a arm -b 64 -p n3N3
|
|
BROKEN=1 # RzEgg exec encoder has no arm64 shellcode
|
|
TOOL=rz-gg
|
|
ARGS=-i exec -k darwin -a arm -b 64 -p n3N3
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 simple_cmp.r
|
|
BROKEN=1 # RzEgg has no AArch64 backend: emits AArch32 (push {fp,lr})
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 bins/other/rz-gg/simple_cmp.r
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rz-gg -k darwin -a arm -b 64 bins/other/rz-gg/hi.c
|
|
BROKEN=1 # no AArch64 egg backend; also compiler-dependent
|
|
TOOL=rz-gg
|
|
ARGS=-k darwin -a arm -b 64 bins/other/rz-gg/hi.c
|
|
REGEXP_FILTER_OUT=e9.+
|
|
EXPECT=<<EOF
|
|
???
|
|
EOF
|
|
RUN |