rizin/test/db/cmd/cmd_ps
Giovanni 7f55442dc2
Fix endianness issues on s390x (#5940)
* Refactor of bflt to guess arch & fix m68k code
* Fix endianness issues
* Always cleanup at the end on travis ci
2026-02-19 23:13:18 +08:00

199 lines
4.7 KiB
Text

NAME=ps+ libc++ 32bit
FILE=bins/elf/stdstring32-libc++.LOAD1
ARGS=-n -m 0x08049ee8
CMDS=<<EOF
e asm.arch=x86
on bins/elf/stdstring32-libc++.heap 0x09eb8000 > /dev/null
f obj.empty_str 12 @ 0x0804a064
f obj.long_str1 12 @ 0x0804a04c
f obj.short_str1 12 @ 0x0804a034
f obj.long_str2 12 @ 0x0804a058
f obj.short_str2 12 @ 0x0804a040
e asm.bits=32
e str.encoding=utf8
ps+ @ obj.short_str1
ps+ @ obj.short_str2
ps+ @ obj.empty_str
ps+ @ obj.long_str1
ps+ @ obj.long_str2
EOF
EXPECT=<<EOF
a
abcdefghij
abcdefghijk
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
EOF
RUN
NAME=ps+ libc++ 64bit
FILE=bins/elf/stdstring64-libc++.LOAD1
ARGS=-n -m 0x00600dc8
CMDS=<<EOF
e asm.arch=x86
on bins/elf/stdstring64-libc++.heap 0x0128b000 > /dev/null
f obj.empty_str 24 @ 0x006010b8
f obj.long_str1 24 @ 0x00601088
f obj.short_str1 24 @ 0x00601058
f obj.long_str2 24 @ 0x006010a0
f obj.short_str2 24 @ 0x00601070
e asm.bits=64
e str.encoding=utf8
ps+ @ obj.short_str1
ps+ @ obj.short_str2
ps+ @ obj.empty_str
ps+ @ obj.long_str1
ps+ @ obj.long_str2
EOF
EXPECT=<<EOF
a
abcdefghijklmnopqrstuv
abcdefghijklmnopqrstuvw
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
EOF
RUN
NAME=psn escapes newlines (#10037)
FILE==
CMDS=<<EOF
wz abc\n123\n
psn @! 9
EOF
EXPECT=<<EOF
abc\x0a123\x0a\x00
EOF
RUN
NAME=ps N and initial nulls (#10037)
FILE==
CMDS=<<EOF
ps guess block @! 1
ps guess block @! 2
ps guess block @! 3
ps guess block @! 4
ps guess block @! 8
EOF
EXPECT=<<EOF
\x00
\x00\x00
\x00\x00\x00
\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00
EOF
RUN
NAME=ps+ libc++ 16bit error
FILE==
CMDS=<<EOF
e asm.arch=x86
e asm.bits=16
f obj.empty_str 12 @ 0x0804a064
ps+ @ obj.empty_str
EOF
EXPECT_ERR=<<EOF
ERROR: core: 16 bits are not supported by ps+
EOF
RUN
NAME=psc define C C++ string
FILE==
CMDS=<<EOF
wx 90919241424322
psc @! 7
EOF
EXPECT=<<EOF
#define STRING_SIZE 7
const char s[STRING_SIZE] = "\x90\x91\x92\x41\x42\x43\x22";
EOF
RUN
NAME=psc define C C++ multiline string
FILE==
CMDS=<<EOF
wx 909192414243229091924142432290919241424322
psc @! 21
EOF
EXPECT=<<EOF
#define STRING_SIZE 21
const char s[STRING_SIZE] = "\x90\x91\x92\x41\x42\x43\x22\x90\x91\x92\x41\x42\x43\x22\x90\x91"
"\x92\x41\x42\x43\x22";
EOF
RUN
NAME=ps ascii detection with block/zero-terminated
FILE==
CMDS=<<EOF
o malloc://512
wx 4a757374206c696b652070696e656170 ; sd +16
wx 706c65206f6e2070697a7a612c207468 ; sd +16
wx 6973207461736b2f7468726561642070 ; sd +16
wx 6f727420646f65736e27742062656c6f ; sd +16
wx 6e6720686572652e204025733a256400 ; sd +16
wx 636f6d2e6170706c652e707269766174 ; sd +16
wx 652e7461736b5f706f6c696379007374 ; sd +16
wx 72616e6765207461736b20666c61766f ; sd +16
wx 72204025733a25640075736572737061 ; sd +16
wx 63652068617320636f6e74726f6c2061 ; sd +16
wx 636365737320746f2061206b65726e65 ; sd +16
wx 6c206d6170202570207468726f756768 ; sd +16
wx 207461736b202570204025733a256400 ; sd +16
wx 737472616e6765207468726561642066 ; sd +16
wx 6c61766f72204025733a256400736861 ; sd +16
wx 7265642e00646174612e007368617265 ; sd -256
ps guess block
echo \n
ps guess null
EOF
EXPECT=<<EOF
Just like pineapple on pizza, this task/thread port doesn't belong here. @%s:%d\x00com.apple.private.task_policy\x00strange task flavor @%s:%d\x00userspace has control access to a kernel map %p through task %p @%s:%d\x00strange thread flavor @%s:%d\x00shared.\x00data.\x00share
Just like pineapple on pizza, this task/thread port doesn't belong here. @%s:%d
EOF
RUN
NAME=Error case str.encoding
FILE==
CMDS=<<EOF
e str.encoding=settings
EOF
EXPECT_ERR=<<EOF
ERROR: Invalid value for str.encoding (settings).
EOF
RUN
NAME=str.encoding
FILE=bins/cmd/search/string_encodings/Japanese-Katakana-Lipsum.ibm290
CMDS=<<EOF
e str.encoding=ibm290
ps
ps settings
EOF
EXPECT=<<EOF
。「」、・ヲァィゥ£.<(+|&ェォャュョッー!¥*);¬アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフ¯ヘホマミムメモヤユヨラリルレロワン゛゜゜
。「」、・ヲァィゥ£.<(+|&ェォャュョッー!¥*);¬アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフ¯ヘホマミムメモヤユヨラリルレロワン゛゜゜
EOF
EXPECT_ERR=
RUN
NAME=ps select encoding
FILE=bins/cmd/search/string_encodings/Latin-Lipsum.ebcdic_es
CMDS=<<EOF
b 0x1000
ps ebcdices unprintable
EOF
EXPECT=<<EOF
Lorem ipsum dolor sit amet, at eligendi adipisci ius, ex natum appetere officiis has, nibh quas torquatos pro te. Quo at deleniti repudiandae, et oratio pertinacia ullamcorper quo. Per ut stet assum augue, brute pertinacia pri id. Sed omnium oblique placerat ut, eu etiam vitae nam. Per invenire expetenda dissentiet id, ea alia nostrud detraxit est, est eros intellegebat et.
EOF
RUN
NAME=Issue #4697 and Unicode update
FILE==
CMDS=<<EOF
wx f09f9faaf09f9faa
ps
EOF
EXPECT=<<EOF
🟪🟪
EOF
RUN