The ELF section classifier in sections_obj() only marked a section as
data when its name contained "data". As a result .dynstr (type
SHT_STRTAB, SHF_ALLOC) was flagged neither as data nor as containing
strings, so is_data_section() rejected it. Two problems followed:
- the string search (iz, and the default AUTO scan used by -A) skipped
.dynstr, so its strings were never listed (only izz, which scans the
whole file regardless of section flags, showed them);
- because no RZ_META_TYPE_STRING metadata was applied over the region,
the disassembler rendered the NUL-terminated symbol names as code,
e.g. on MIPS "_GLOBAL_OFFSET_TABLE_" decoded to bgtzl/ldr/jalx/...
Mark a section as containing strings when it is mapped into memory
(SHF_ALLOC) and is either a string table (SHT_STRTAB) or carries the
explicit SHF_STRINGS flag. The SHF_ALLOC restriction keeps the loaded
string tables (.dynstr) while leaving the non-allocated .strtab and
.shstrtab to izz, matching the "iz lists the loaded image" semantics.
This is architecture independent; MIPS was simply where the bad
disassembly was first noticed.
Closes #5182
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
1239 lines
40 KiB
Text
1239 lines
40 KiB
Text
NAME=Resolve all symbols on a stripped linux go1.18 binary
|
|
FILE=bins/golang/example-server-1.18-stripped
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
4759
|
|
0x0063dfdc str.server.crt
|
|
0x0063e01e str.Reading_server_certificate:__s
|
|
0x0063e1d1 str.https:__localhost:8000
|
|
0x0063e20e str.Failed_get:__s
|
|
0x0063e2e4 str.Failed_reading_response_body:__s
|
|
0x0063e3af str.Got_response__d:__s__s
|
|
0x0063e49b str.version
|
|
0x0063e4ac str.HTTP_version
|
|
0x0063e566 str.
|
|
HEAD
|
|
0x63f4be 4 4 flag
|
|
0x63f4c4 4 4 sort
|
|
0x63f4ca 4 4 sync
|
|
0x63f4d0 4 4 *int
|
|
0x63f4d6 4 4 AAAA
|
|
0x63f4dc 4 4 Addr
|
|
0x63f4e2 4 4 Args
|
|
0x63f4e8 4 4 Atim
|
|
0x63f4ee 4 4 Attr
|
|
0x63f4f4 4 4 Back
|
|
TAIL
|
|
0x6a6d1d 2 2 HT
|
|
0x6a7847 10 10 server.crt
|
|
0x6ab8fb 23 23 Got response %d: %s %s\n
|
|
0x6af1a8 32 32 Failed reading response body: %s
|
|
0x6a8859 14 14 Failed get: %s
|
|
0x6ab4eb 22 22 https://localhost:8000
|
|
0x6ae630 30 30 Reading server certificate: %s
|
|
0x6a6b9f 7 7 version
|
|
0x6a7efb 2 2 HT
|
|
0x6a7efb 12 12 HTTP version
|
|
12759
|
|
bufio
|
|
bytes
|
|
compress/flate
|
|
compress/gzip
|
|
container/list
|
|
context
|
|
crypto
|
|
crypto/aes
|
|
crypto/cipher
|
|
crypto/des
|
|
crypto/dsa
|
|
crypto/ecdsa
|
|
crypto/ed25519
|
|
crypto/ed25519/internal/edwards25519
|
|
crypto/ed25519/internal/edwards25519/field
|
|
crypto/elliptic
|
|
crypto/elliptic/internal/fiat
|
|
crypto/elliptic/internal/nistec
|
|
crypto/hmac
|
|
crypto/internal/randutil
|
|
crypto/md5
|
|
crypto/rand
|
|
crypto/rc4
|
|
crypto/rsa
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
crypto/tls
|
|
crypto/x509
|
|
crypto/x509/pkix
|
|
encoding/asn1
|
|
encoding/base64
|
|
encoding/binary
|
|
encoding/hex
|
|
encoding/pem
|
|
errors
|
|
flag
|
|
fmt
|
|
golang.org/x/crypto/chacha20
|
|
golang.org/x/crypto/chacha20poly1305
|
|
golang.org/x/crypto/cryptobyte
|
|
golang.org/x/crypto/curve25519
|
|
golang.org/x/crypto/curve25519/internal/field
|
|
golang.org/x/crypto/hkdf
|
|
golang.org/x/crypto/internal/poly1305
|
|
golang.org/x/net/dns/dnsmessage
|
|
golang.org/x/net/http/httpguts
|
|
golang.org/x/net/http/httpproxy
|
|
golang.org/x/net/http2
|
|
golang.org/x/net/http2/hpack
|
|
golang.org/x/net/idna
|
|
golang.org/x/sys/cpu
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
hash/crc32
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/godebug
|
|
internal/intern
|
|
internal/itoa
|
|
internal/oserror
|
|
internal/poll
|
|
internal/reflectlite
|
|
internal/singleflight
|
|
internal/syscall/unix
|
|
internal/testlog
|
|
io
|
|
io/fs
|
|
io/ioutil
|
|
libc.so.6
|
|
log
|
|
math
|
|
math/big
|
|
math/rand
|
|
mime
|
|
mime/multipart
|
|
net
|
|
net/http
|
|
net/http/internal
|
|
net/http/internal/ascii
|
|
net/netip
|
|
net/textproto
|
|
net/url
|
|
os
|
|
path
|
|
path/filepath
|
|
reflect
|
|
runtime
|
|
runtime/debug
|
|
runtime/internal/atomic
|
|
runtime/internal/sys
|
|
runtime/internal/syscall
|
|
sort
|
|
strconv
|
|
strings
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf16
|
|
unicode/utf8
|
|
x_cgo_munmap
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped linux go1.16 binary
|
|
FILE=bins/golang/example-server-1.16-stripped
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
4657
|
|
0x0066d583 str.server.crt
|
|
0x0066d5f3 str.Reading_server_certificate:__s
|
|
0x0066d722 str.https:__localhost:8000
|
|
0x0066d77c str.Failed_get:__s
|
|
0x0066d863 str.Failed_reading_response_body:__s
|
|
0x0066d9a3 str.Got_response__d:__s__s
|
|
0x0066db8c str.version
|
|
0x0066dbaa str.HTTP_version
|
|
0x0066dc76 str.
|
|
0x0066e68d str.Addr
|
|
;-- str.flag:
|
|
;-- str.sort:
|
|
;-- str.sync:
|
|
HEAD
|
|
0x66e6cb 4 4 flag
|
|
0x66e6d3 4 4 sort
|
|
0x66e6db 4 4 sync
|
|
0x66e6e2 4 4 *int
|
|
0x66e6e9 4 4 AAAA
|
|
0x66e6f0 4 4 Addr
|
|
0x66e6f7 4 4 Args
|
|
0x66e6fe 4 4 Atim
|
|
0x66e705 4 4 Attr
|
|
0x66e70c 4 4 Back
|
|
TAIL
|
|
0x5 22 22 \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff
|
|
0x6f10e1 25 25 http2: Request.URI is nil
|
|
0x6ec547 10 10 server.crt
|
|
0x6f0013 22 22 https://localhost:8000
|
|
0x6f03f7 23 23 Got response %d: %s %s\n
|
|
0x6f397b 32 32 Failed reading response body: %s
|
|
0x6ed500 14 14 Failed get: %s
|
|
0x6f2e40 30 30 Reading server certificate: %s
|
|
0x6eb88e 7 7 version
|
|
0x6ecbc3 12 12 HTTP version
|
|
12866
|
|
bufio
|
|
bytes
|
|
compress/flate
|
|
compress/gzip
|
|
container/list
|
|
context
|
|
crypto
|
|
crypto/aes
|
|
crypto/cipher
|
|
crypto/des
|
|
crypto/dsa
|
|
crypto/ecdsa
|
|
crypto/ed25519
|
|
crypto/ed25519/internal/edwards25519
|
|
crypto/elliptic
|
|
crypto/hmac
|
|
crypto/internal/randutil
|
|
crypto/md5
|
|
crypto/rand
|
|
crypto/rc4
|
|
crypto/rsa
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
crypto/tls
|
|
crypto/x509
|
|
crypto/x509/pkix
|
|
encoding/asn1
|
|
encoding/base64
|
|
encoding/binary
|
|
encoding/hex
|
|
encoding/pem
|
|
errors
|
|
flag
|
|
fmt
|
|
golang.org/x/crypto/chacha20
|
|
golang.org/x/crypto/chacha20poly1305
|
|
golang.org/x/crypto/cryptobyte
|
|
golang.org/x/crypto/curve25519
|
|
golang.org/x/crypto/hkdf
|
|
golang.org/x/crypto/poly1305
|
|
golang.org/x/net/dns/dnsmessage
|
|
golang.org/x/net/http/httpguts
|
|
golang.org/x/net/http/httpproxy
|
|
golang.org/x/net/http2
|
|
golang.org/x/net/http2/hpack
|
|
golang.org/x/net/idna
|
|
golang.org/x/sys/cpu
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
hash/crc32
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/oserror
|
|
internal/poll
|
|
internal/reflectlite
|
|
internal/singleflight
|
|
internal/syscall/unix
|
|
internal/testlog
|
|
io
|
|
io/fs
|
|
io/ioutil
|
|
libc.so.6
|
|
libpthread.so.0
|
|
log
|
|
math
|
|
math/big
|
|
math/rand
|
|
mime
|
|
mime/multipart
|
|
net
|
|
net/http
|
|
net/http/internal
|
|
net/textproto
|
|
net/url
|
|
os
|
|
path
|
|
path/filepath
|
|
reflect
|
|
runtime
|
|
runtime/debug
|
|
runtime/internal/atomic
|
|
runtime/internal/sys
|
|
sort
|
|
strconv
|
|
strings
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf16
|
|
unicode/utf8
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped linux go1.12 binary
|
|
FILE=bins/golang/example-server-1.12-stripped
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
5406
|
|
0x0065d876 str.server.crt
|
|
0x0065d8e0 str.Reading_server_certificate:__s
|
|
0x0065da03 str.https:__localhost:8000
|
|
0x0065da57 str.Failed_get:__s
|
|
0x0065db5a str.Failed_reading_response_body:__s
|
|
0x0065dca5 str.Got_response__d:__s__s
|
|
0x0065de6d str.version
|
|
0x0065de8a str.HTTP_version
|
|
0x0065dfe6 str.
|
|
HEAD
|
|
0x65f99f 4 4 flag
|
|
0x65f9a7 4 4 hash
|
|
0x65f9af 4 4 sort
|
|
0x65f9b7 4 4 sync
|
|
0x65f9bf 4 4 time
|
|
0x65f9c6 4 4 *int
|
|
0x65f9cd 4 4 AAAA
|
|
0x65f9d4 4 4 Addr
|
|
0x65f9db 4 4 Args
|
|
0x65f9e2 4 4 Atim
|
|
TAIL
|
|
0x705389 56 56 http2: request body larger than specified content length
|
|
0x6fc61a 25 25 http2: Request.URI is nil
|
|
0x6f8031 10 10 server.crt
|
|
0x6fb5da 22 22 https://localhost:8000
|
|
0x6fb9a8 23 23 Got response %d: %s %s\n
|
|
0x6fecea 32 32 Failed reading response body: %s
|
|
0x6f8e6f 14 14 Failed get: %s
|
|
0x6fe2c3 30 30 Reading server certificate: %s
|
|
0x6f7521 7 7 version
|
|
0x6f85b4 12 12 HTTP version
|
|
12219
|
|
bufio
|
|
bytes
|
|
compress/flate
|
|
compress/gzip
|
|
container/list
|
|
context
|
|
crypto
|
|
crypto/aes
|
|
crypto/cipher
|
|
crypto/des
|
|
crypto/dsa
|
|
crypto/ecdsa
|
|
crypto/elliptic
|
|
crypto/hmac
|
|
crypto/internal/randutil
|
|
crypto/md5
|
|
crypto/rand
|
|
crypto/rc4
|
|
crypto/rsa
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
crypto/subtle
|
|
crypto/tls
|
|
crypto/x509
|
|
crypto/x509/pkix
|
|
encoding/asn1
|
|
encoding/base64
|
|
encoding/binary
|
|
encoding/hex
|
|
encoding/pem
|
|
errors
|
|
flag
|
|
fmt
|
|
go
|
|
golang.org/x/net/http/httpguts
|
|
golang.org/x/net/http2
|
|
golang.org/x/net/http2/hpack
|
|
golang.org/x/net/idna
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
hash
|
|
hash/crc32
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/poll
|
|
internal/singleflight
|
|
internal/syscall/unix
|
|
internal/testlog
|
|
internal/x/crypto/chacha20poly1305
|
|
internal/x/crypto/cryptobyte
|
|
internal/x/crypto/curve25519
|
|
internal/x/crypto/hkdf
|
|
internal/x/crypto/internal/chacha20
|
|
internal/x/crypto/poly1305
|
|
internal/x/net/dns/dnsmessage
|
|
internal/x/net/http/httpguts
|
|
internal/x/net/http/httpproxy
|
|
internal/x/net/http2/hpack
|
|
internal/x/net/idna
|
|
internal/x/text/secure/bidirule
|
|
internal/x/text/transform
|
|
internal/x/text/unicode/bidi
|
|
internal/x/text/unicode/norm
|
|
io
|
|
io/ioutil
|
|
libc.so.6
|
|
libpthread.so.0
|
|
log
|
|
math
|
|
math/big
|
|
math/rand
|
|
mime
|
|
mime/multipart
|
|
mime/quotedprintable
|
|
net
|
|
net/http
|
|
net/http/httptrace
|
|
net/http/internal
|
|
net/textproto
|
|
net/url
|
|
os
|
|
path
|
|
path/filepath
|
|
reflect
|
|
runtime
|
|
runtime/cgo
|
|
runtime/debug
|
|
runtime/internal/atomic
|
|
sort
|
|
strconv
|
|
strings
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf8
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a linux go1.16 binary (arm32)
|
|
FILE=bins/golang/btcctl-linux-armv7-v0.22.0-beta
|
|
TIMEOUT=1200
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
5124
|
|
0x00270aac str.Failed_to_read_data_from_stdin:__v
|
|
0x00270d70 str.s_command:__v
|
|
0x00270db8 str.1.0
|
|
0x002710ec str.Failed_to_unmarshal_result:__v
|
|
0x0027124c str.Failed_to_format_result:__v
|
|
0x0027140c str.s_command:__v__code:__s
|
|
0x002714b0 str.The___s__command_can_only_be_used_via_websockets
|
|
0x00271580 str.Unrecognized_command___s
|
|
0x00271608 str.No_command_specified
|
|
0x0027186c str.Chain_Server_Commands:DEBUG_HTTP2
|
|
0x0027187c str.Wallet_Server_Commands____wallet_:
|
|
0x00271bbc str.cannot_use__wallet_with__regtest__btcwallet_not_yet_compatible_with_regtest
|
|
0x00271e10 str.localhost
|
|
0x00272018 str.Use__s__h_to_show_options
|
|
0x002720ec str.btcwallet.conf
|
|
0x00272188 str.Error_creating_a_default_config_file:__v
|
|
0x00272618 str.s:_Multiple_network_params_can_t_be_used_together____choose_one
|
|
0x0027271c str.Error_parsing_config_file:__v
|
|
0x002727f8 str.btcd.conf
|
|
0x00272c0c str.m___s_rpcuser_____s
|
|
0x00272c60 str.m___s_rpcpass_____s
|
|
0x00272cb4 str.m___s_notls__0_1___:_s
|
|
0x00272e4c str.rpcuser__s_rpcpass__s
|
|
0x00272edc str.notls__s
|
|
0x00273460 str.http
|
|
0x0027347c str.:
|
|
0x00273514 str.POST
|
|
0x00273574 str.Content_Type
|
|
0x002735b4 str.application_json
|
|
0x0027373c str.error_reading_json_reply:__v
|
|
0x00273834 str.d__s
|
|
0x002738bc str.s
|
|
0x00273a58 str.https
|
|
0x00273b18 str.d._d._d
|
|
0x00273b50 str.beta
|
|
0x00273c20 str.s__s
|
|
0x00273d74 str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
|
0x00273efc str.linux
|
|
0x00273f0c str.btcd
|
|
0x00273f50 str.linux
|
|
0x00273f60 str.btcctl
|
|
0x00273fa4 str.linux
|
|
0x00273fb4 str.btcwallet
|
|
0x0027401c str.btcctl.conf
|
|
0x00274090 str.rpc.cert
|
|
0x00274104 str.rpc.cert
|
|
HEAD
|
|
0x280a6f 4 4 main
|
|
0x280a77 4 4 sort
|
|
0x280a7f 4 4 sync
|
|
0x280a87 4 4 time
|
|
0x280a8e 4 4 *int
|
|
0x280a95 4 4 AAAA
|
|
0x280a9c 4 4 Add2
|
|
0x280aa3 4 4 Addr
|
|
0x280aaa 4 4 Args
|
|
0x280ab1 4 4 Atim
|
|
TAIL
|
|
0x2e9fd2 5 5 %s+%s
|
|
0x2fe095 63 63 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-
|
|
0x2e9e6b 5 5 btcdc
|
|
0x2e9e6b 4 4 btcd
|
|
0x2ea4ca 5 5 btcct
|
|
0x2ea4ca 6 6 btcctl
|
|
0x2eb50f 5 5 btcwa
|
|
0x2eb50f 9 9 btcwallet
|
|
0x2ec40d 11 11 btcctl.conf
|
|
0x2eb053 8 8 rpc.cert
|
|
14315
|
|
bufio
|
|
bytes
|
|
compress/flate
|
|
compress/gzip
|
|
compress/zlib
|
|
container/list
|
|
context
|
|
crypto
|
|
crypto/aes
|
|
crypto/cipher
|
|
crypto/des
|
|
crypto/dsa
|
|
crypto/ecdsa
|
|
crypto/ed25519
|
|
crypto/ed25519/internal/edwards25519
|
|
crypto/elliptic
|
|
crypto/hmac
|
|
crypto/internal/randutil
|
|
crypto/md5
|
|
crypto/rand
|
|
crypto/rc4
|
|
crypto/rsa
|
|
crypto/sha1
|
|
crypto/sha256
|
|
crypto/sha512
|
|
crypto/tls
|
|
crypto/x509
|
|
crypto/x509/pkix
|
|
encoding/asn1
|
|
encoding/base64
|
|
encoding/binary
|
|
encoding/hex
|
|
encoding/json
|
|
encoding/pem
|
|
errors
|
|
fmt
|
|
github.com/btcsuite/btcd/btcec
|
|
github.com/btcsuite/btcd/btcjson
|
|
github.com/btcsuite/btcd/chaincfg
|
|
github.com/btcsuite/btcd/chaincfg/chainhash
|
|
github.com/btcsuite/btcd/txscript
|
|
github.com/btcsuite/btcd/wire
|
|
github.com/btcsuite/btclog
|
|
github.com/btcsuite/btcutil
|
|
github.com/btcsuite/btcutil/base58
|
|
github.com/btcsuite/go-socks/socks
|
|
github.com/jessevdk/go-flags
|
|
golang.org/x/crypto/chacha20
|
|
golang.org/x/crypto/chacha20poly1305
|
|
golang.org/x/crypto/cryptobyte
|
|
golang.org/x/crypto/curve25519
|
|
golang.org/x/crypto/hkdf
|
|
golang.org/x/crypto/poly1305
|
|
golang.org/x/crypto/ripemd160
|
|
golang.org/x/net/dns/dnsmessage
|
|
golang.org/x/net/http/httpguts
|
|
golang.org/x/net/http/httpproxy
|
|
golang.org/x/net/http2/hpack
|
|
golang.org/x/net/idna
|
|
golang.org/x/text/secure/bidirule
|
|
golang.org/x/text/transform
|
|
golang.org/x/text/unicode/bidi
|
|
golang.org/x/text/unicode/norm
|
|
hash/adler32
|
|
hash/crc32
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/oserror
|
|
internal/poll
|
|
internal/reflectlite
|
|
internal/singleflight
|
|
internal/syscall/unix
|
|
internal/testlog
|
|
io
|
|
io/fs
|
|
io/ioutil
|
|
log
|
|
math
|
|
math/big
|
|
math/bits
|
|
math/rand
|
|
mime
|
|
mime/multipart
|
|
net
|
|
net/http
|
|
net/http/internal
|
|
net/textproto
|
|
net/url
|
|
os
|
|
os/user
|
|
path
|
|
path/filepath
|
|
reflect
|
|
regexp
|
|
regexp/syntax
|
|
runtime
|
|
runtime/debug
|
|
runtime/internal/atomic
|
|
sort
|
|
strconv
|
|
strings
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf16
|
|
unicode/utf8
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a linux go1.16 binary (arm64)
|
|
FILE=bins/golang/btcctl-linux-arm64-v0.22.0-beta
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
5070
|
|
0x0026b000 str.s_command:__v
|
|
0x0026b04c str.1.0
|
|
0x0026b310 str.tls:_invalid_server_key_share
|
|
0x0026b314 str.Failed_to_unmarshal_result:__v
|
|
0x0026b444 str.Failed_to_format_result:__v
|
|
0x0026b5dc str.s_command:__v__code:__s
|
|
0x0026b730 str.Failed_to_read_data_from_stdin:__v
|
|
0x0026b884 str.Not_enough_lines_provided_on_stdin
|
|
0x0026b998 str.The___s__command_can_only_be_used_via_websockets
|
|
0x0026b9d0 str.Specify__l_to_list_available_commands
|
|
0x0026ba70 str.Unrecognized_command___s
|
|
0x0026baa8 str.Specify__l_to_list_available_commands
|
|
0x0026bb00 str.No_command_specified
|
|
0x0026bc28 str.Chain_Server_Commands:DEBUG_HTTP2
|
|
0x0026bc3c str.Wallet_Server_Commands____wallet_:
|
|
0x0026bf1c str.testnet3
|
|
0x0026bf40 str.18334
|
|
0x0026c030 str.simnet
|
|
0x0026c054 str.18556
|
|
0x0026c064 str.regtest
|
|
0x0026c084 str.18334
|
|
0x0026c090 str.cannot_use__wallet_with__regtest__btcwallet_not_yet_compatible_with_regtest
|
|
0x0026c100 str.8334
|
|
0x0026c2c8 str.localhost
|
|
0x0026c2d0 str.localhost
|
|
0x0026c520 str.Use__s__h_to_show_options
|
|
0x0026c5f4 str.btcwallet.conf
|
|
0x0026c688 str.Error_creating_a_default_config_file:__v
|
|
0x0026c8ac str.testnet3
|
|
0x0026c8b4 str.mainnet
|
|
0x0026c8c4 str.simnet
|
|
0x0026c8d4 str.regtest
|
|
0x0026cad4 str.loadConfig
|
|
0x0026cae0 str.profilealloc_called_without_a_P_or_outside_bootstrapping
|
|
0x0026cae4 str.s:_Multiple_network_params_can_t_be_used_together____choose_one
|
|
0x0026cbd0 str.tls:_invalid_server_key_share
|
|
0x0026cbd4 str.Error_parsing_config_file:__v
|
|
0x0026ccb8 str.btcd.conf
|
|
0x0026cd6c str.version
|
|
0x0026cec4 str.The_special_parameter_____indicates_that_a_parameter_should_be_read_from_the_next_unread_line_from_standard_input.
|
|
0x0026d0a8 str.m___s_rpcuser_____s
|
|
0x0026d0fc str.m___s_rpcpass_____s
|
|
0x0026d150 str.m___s_notls__0_1___:_s
|
|
0x0026d2e0 str.rpcuser__s_rpcpass__s
|
|
0x0026d368 str.notls__s
|
|
0x0026d900 str.http
|
|
0x0026d908 str.https
|
|
0x0026d90c str.http
|
|
0x0026d928 str.:
|
|
0x0026d9c4 str.POST
|
|
0x0026da28 str.Content_Type
|
|
0x0026da70 str.application_json
|
|
0x0026dbe8 str.error_reading_json_reply:__v
|
|
0x0026dcec str.d__s
|
|
0x0026dd70 str.s
|
|
0x0026df84 str.d._d._d
|
|
0x0026dfc0 str.beta
|
|
0x0026e0a0 str.s__s
|
|
0x0026e1dc str.profilealloc_called_without_a_P_or_outside_bootstrapping
|
|
0x0026e1e0 str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
|
0x0026e370 str.linux
|
|
0x0026e384 str.btcd
|
|
0x0026e3d0 str.linux
|
|
0x0026e3e4 str.btcctl
|
|
0x0026e430 str.linux
|
|
0x0026e444 str.btcwallet
|
|
0x0026e4b8 str.btcctl.conf
|
|
0x0026e53c str.rpc.cert
|
|
0x0026e5c0 str.rpc.cert
|
|
HEAD
|
|
0x270767 4 4 main
|
|
0x27076f 4 4 sort
|
|
0x270777 4 4 sync
|
|
0x27077f 4 4 time
|
|
0x270786 4 4 *int
|
|
0x27078d 4 4 AAAA
|
|
0x270794 4 4 Add2
|
|
0x27079b 4 4 Addr
|
|
0x2707a2 4 4 Args
|
|
0x2707a9 4 4 Atim
|
|
TAIL
|
|
0x306b9a 5 5 %s+%s
|
|
0x31abbf 63 63 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-
|
|
0x306a26 5 5 btcdc
|
|
0x306a26 4 4 btcd
|
|
0x30708d 5 5 btcct
|
|
0x30708d 6 6 btcctl
|
|
0x308060 5 5 btcwa
|
|
0x308060 9 9 btcwallet
|
|
0x308f22 11 11 btcctl.conf
|
|
0x307bd6 8 8 rpc.cert
|
|
14368
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped mach0 go1.18 binary (arm64)
|
|
FILE=bins/golang/hello.mach0.stripped
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ sym.go.runtime.panicwrap ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
izq~ slice bounds out of range
|
|
iI~compiler
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1429
|
|
0x100006dd8 str.value_method
|
|
0x100006e48 str.called_using_nil
|
|
0x100006e64 str.pointer
|
|
0x100006eac str.panicwrap:_no___in
|
|
0x1000076d0 str.internal_error___misuse_of_itab
|
|
HEAD
|
|
0x1001822b3 46 46 \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff
|
|
0x10008b966 31 31 fmt: unknown base; can't happen
|
|
0x100087f8a 11 11 unreachable
|
|
0x10008e827 71 71 too many concurrent operations on a single file or socket (max 1048575)
|
|
0x10008a75e 25 25 inconsistent poll.fdMutex
|
|
0x10008b332 29 29 reflect: Elem of invalid type
|
|
0x10008b740 30 30 reflect: Len of non-array type
|
|
0x100087ddd 11 11 Hello Rizin
|
|
0x1000879fd 9 9 invalid n
|
|
0x10008880c 15 15 invalid argSize
|
|
TAIL
|
|
0x100088c1d 10 10 0123456789
|
|
0x100088c1d 17 17 0123456789abcdefx
|
|
0x100087058 5 5 <nil>
|
|
0x100087277 6 6 String
|
|
0x10008707b 5 5 Error
|
|
0x1000875ed 8 8 GoString
|
|
0x100087217 6 6 Format
|
|
0x1000872ad 6 6 []byte
|
|
0x10008ca10 36 36 syntax error scanning complex number
|
|
0x10008b454 29 29 syntax error scanning boolean
|
|
1709
|
|
0x10008bada 31 31 slice bounds out of range [:%x]
|
|
0x10008babb 31 31 slice bounds out of range [%x:]
|
|
0x10008be19 32 32 slice bounds out of range [::%x]
|
|
0x10008bdf9 32 32 slice bounds out of range [:%x:]
|
|
0x10008bdd9 32 32 slice bounds out of range [%x::]
|
|
0x10008dbfa 46 46 slice bounds out of range [:%x] with length %y
|
|
0x10008ddcf 48 48 slice bounds out of range [:%x] with capacity %y
|
|
0x10008c235 33 33 slice bounds out of range [%x:%y]
|
|
0x10008dd40 47 47 slice bounds out of range [::%x] with length %y
|
|
0x10008dfe8 49 49 slice bounds out of range [::%x] with capacity %y
|
|
0x10008c5a0 34 34 slice bounds out of range [:%x:%y]
|
|
0x10008c57e 34 34 slice bounds out of range [%x:%y:]
|
|
0x10008a871 25 25 slice bounds out of range
|
|
compiler go1.18 (cmd -compiler=gc CGO_ENABLED=1 CGO_CFLAGS= CGO_CPPFLAGS= CGO_CXXFLAGS= CGO_LDFLAGS= GOARCH=arm64 GOOS=darwin)
|
|
/usr/lib/libSystem.B.dylib
|
|
errors
|
|
fmt
|
|
go
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/itoa
|
|
internal/oserror
|
|
internal/poll
|
|
internal/reflectlite
|
|
internal/syscall/unix
|
|
internal/testlog
|
|
io
|
|
io/fs
|
|
os
|
|
path
|
|
reflect
|
|
runtime
|
|
runtime/debug
|
|
sort
|
|
strconv
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf8
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped PE go1.12 binary (x64)
|
|
FILE=bins/golang/hello_go_strip.exe
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
iI~compiler
|
|
ilq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1788
|
|
0x004a699b str.hello__hacktivity
|
|
0x004a69d5 str.reflect.__funcTypeFixed64_.AssignableTo
|
|
HEAD
|
|
0x4a7323 5 4 sort
|
|
0x4a732b 5 4 sync
|
|
0x4a7333 5 4 time
|
|
0x4a733a 4 4 *int
|
|
0x4a7341 4 4 Addr
|
|
0x4a7348 4 4 Bits
|
|
0x4a734f 4 4 Bool
|
|
0x4a7356 4 4 Call
|
|
0x4a735d 4 4 Data
|
|
0x4a7364 4 4 Elem
|
|
TAIL
|
|
0x4cc34c 11 11 /dev/stderr
|
|
0x4d4101 55 55 os: invalid use of WriteAt on file opened with O_APPEND
|
|
0x4cd67f 17 17 0123456789abcdefx
|
|
0x4cd66e 17 17 0123456789ABCDEFX
|
|
0x4cb67c 5 5 <nil>
|
|
0x4cb8cc 6 6 []byte
|
|
0x4cf0eb 23 23 <invalid reflect.Value>
|
|
0x4d247e 36 36 syntax error scanning complex number
|
|
0x4d0da9 29 29 syntax error scanning boolean
|
|
0x4cdc0f 18 18 hello, hacktivity\n
|
|
9570
|
|
compiler go1.15 Linker 03.00
|
|
errors
|
|
fmt
|
|
go
|
|
internal/bytealg
|
|
internal/cpu
|
|
internal/fmtsort
|
|
internal/oserror
|
|
internal/poll
|
|
internal/reflectlite
|
|
internal/syscall/windows
|
|
internal/syscall/windows/registry
|
|
internal/syscall/windows/sysdll
|
|
io
|
|
kernel32.dll
|
|
math
|
|
os
|
|
reflect
|
|
runtime
|
|
runtime/debug
|
|
runtime/internal/atomic
|
|
runtime/internal/sys
|
|
sort
|
|
strconv
|
|
sync
|
|
sync/atomic
|
|
syscall
|
|
time
|
|
unicode
|
|
unicode/utf16
|
|
unicode/utf8
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 BuildInfo ELF
|
|
FILE=bins/golang/GoReSym_118_tip_stripped
|
|
CMDS=iI~compiler
|
|
EXPECT=<<EOF
|
|
compiler devel go1.18-2d1d548 Tue Dec 21 03:55:43 2021 +0000 (path github.com/stevemk14ebr/GoReSym mod github.com/stevemk14ebr/GoReSym (devel) dep golang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff h1:XmKBi9R6duxOB3lfc72wyrwiOY7X2Jl1wuI+RFOyMDE= -compiler=gc -ldflags=-s -w CGO_ENABLED=1 CGO_CFLAGS= CGO_CPPFLAGS= CGO_CXXFLAGS= CGO_LDFLAGS= GOARCH=amd64 GOOS=linux GOAMD64=v1 vcs=git vcs.revision=4bd670890aee5a14e36be1a72d19ca8573f2433b vcs.time=2021-12-06T17:40:21Z vcs.modified=true)
|
|
EOF
|
|
RUN
|
|
|
|
|
|
NAME=Parse Golang 1.18 MIPS BE Strings
|
|
FILE=bins/golang/go-re-sample-linux-mips
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x000be5ec lui v1, 0xd ; 0xd3417 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
|
|
| 0x000be670 lui at, 0xd ; 0xd3860 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
|
|
| 0x000be6a8 lui v1, 0xd ; 0xd3503 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDograErro"
|
|
| 0x000be700 lui v0, 0xd ; 0xd340e ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
|
|
| 0x000be784 lui at, 0xd ; 0xd360f ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
|
|
| 0x000be7dc lui v0, 0xf ; 0xd914e ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x000be8e4 lui v0, 0xf ; 0xd54fc ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x000be940 lui v0, 0xf ; 0xd3aae ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= pointer stack=[ status ) errno=48828125"
|
|
| 0x000be9d4 lui a0, 0xf ; 0xd38af ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000beab8 lui v0, 0xf ; 0xd550c ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x000beb14 lui v0, 0xf ; 0xd3ca6 ; " enable: (forced) B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ runtime= "
|
|
| 0x000beb9c lui v0, 0xf ; 0xd38a8 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x000bec38 lui a0, 0xf ; 0xd38af ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000becbc lui at, 0xf ; 0xd914e ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 MIPS LE Strings
|
|
FILE=bins/golang/go-re-sample-linux-mipsle
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x000be5d0 lui v1, 0xd ; 0xd3416 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
|
|
| 0x000be654 lui at, 0xd ; 0xd385f ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
|
|
| 0x000be68c lui v1, 0xd ; 0xd3502 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDograErro"
|
|
| 0x000be6e4 lui v0, 0xd ; 0xd340d ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
|
|
| 0x000be768 lui at, 0xd ; 0xd360e ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
|
|
| 0x000be7c0 lui v0, 0xf ; 0xd914d ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x000be8c8 lui v0, 0xf ; 0xd54fb ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x000be924 lui v0, 0xf ; 0xd3aad ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= pointer stack=[ status ) errno=48828125"
|
|
| 0x000be9b8 lui a0, 0xf ; 0xd38ae ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000bea9c lui v0, 0xf ; 0xd550b ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x000beaf8 lui v0, 0xf ; 0xd3ca5 ; " enable: (forced) B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ runtime= "
|
|
| 0x000beb7c lui v0, 0xf ; 0xd38a7 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x000bec18 lui a0, 0xf ; 0xd38ae ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000bec9c lui at, 0xf ; 0xd914d ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 MIPS64 BE Strings
|
|
FILE=bins/golang/go-re-sample-linux-mips64
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x000c0378 lui v1, 0xe ; 0xe7d69 ; "foogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
|
|
| 0x000c040c lui at, 0xf ; 0xe81b6 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
|
|
| 0x000c0448 lui v1, 0xe ; 0xe7e54 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
|
|
| 0x000c04a8 lui v0, 0xe ; 0xe7d60 ; "barendfinfoogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
|
|
| 0x000c053c lui at, 0xe ; 0xe7f65 ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
|
|
| 0x000c05a0 lui v0, 0x11 ; 0xedacb ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x000c06c4 lui v0, 0x11 ; 0xe9e6b ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x000c0730 lui v0, 0x11 ; 0xe8404 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
|
|
| 0x000c07dc lui at, 0x11 ; 0xe8205 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000c08d8 lui v0, 0x11 ; 0xe9e7b ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x000c0944 lui v0, 0x11 ; 0xe8604 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
|
|
| 0x000c09e4 lui v0, 0x11 ; 0xe81fe ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x000c0a98 lui at, 0x11 ; 0xe8205 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000c0b34 lui at, 0x11 ; 0xedacb ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 MIPS64 LE Strings
|
|
FILE=bins/golang/go-re-sample-linux-mips64le
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x000c0360 lui v1, 0xe ; 0xe7d6b ; "foogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
|
|
| 0x000c03f4 lui at, 0xf ; 0xe81b8 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
|
|
| 0x000c0430 lui v1, 0xe ; 0xe7e56 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
|
|
| 0x000c0490 lui v0, 0xe ; 0xe7d62 ; "barendfinfoogc gp in intmapmsanilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
|
|
| 0x000c0524 lui at, 0xe ; 0xe7f67 ; "levellink lo mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26"
|
|
| 0x000c0588 lui v0, 0x11 ; 0xedacd ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x000c06ac lui v0, 0x11 ; 0xe9e6d ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x000c0718 lui v0, 0x11 ; 0xe8406 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
|
|
| 0x000c07c4 lui at, 0x11 ; 0xe8207 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000c08c0 lui v0, 0x11 ; 0xe9e7d ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x000c092c lui v0, 0x11 ; 0xe8606 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
|
|
| 0x000c09c8 lui v0, 0x11 ; 0xe8200 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x000c0a7c lui at, 0x11 ; 0xe8207 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x000c0b18 lui at, 0x11 ; 0xedacd ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 PPC64 BE Strings
|
|
FILE=bins/golang/go-re-sample-linux-ppc64
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x00099f7c lis r5, 0xb ; 0xb7d3f ; "foogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
|
|
| 0x00099fec lis r4, 0xc ; 0xb8198 ; "enableerrno objectpower9selectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs "
|
|
| 0x0009a00c lis r4, 0xb ; go-re-sample.go:12 ; 0xb7e32 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
|
|
| 0x0009a050 lis r9, 0xb ; 0xb7d36 ; "barendfinfoogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
|
|
| 0x0009a0c0 lis r4, 0xb ; 0xb7f48 ; "levellink mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27"
|
|
| 0x0009a108 lis r9, 0xd ; 0xbd867 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x0009a1cc lis r8, 0xd ; 0xb9bf0 ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x0009a218 lis r8, 0xd ; 0xb83ec ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
|
|
| 0x0009a290 lis r7, 0xd ; 0xb81ed ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x0009a330 lis r8, 0xd ; 0xb9c00 ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x0009a37c lis r8, 0xd ; 0xb85f0 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
|
|
| 0x0009a3f4 lis r8, 0xd ; 0xb81e6 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x0009a470 lis r7, 0xd ; 0xb81ed ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x0009a4cc lis r8, 0xd ; 0xbd867 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 PPC64 LE Strings
|
|
FILE=bins/golang/go-re-sample-linux-ppc64le
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x00099eac lis r5, 0xb ; 0xb7d60 ; "foogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFL"
|
|
| 0x00099f1c lis r4, 0xc ; 0xb81b9 ; "enableerrno objectpower9selectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs "
|
|
| 0x00099f3c lis r4, 0xb ; go-re-sample.go:12 ; 0xb7e53 ; "nameprofroots + sbrktrueuint -%s ...\n MB, and cnt= max= ms, ptr tab= top=(nil), fp:1562578125<nil>AdlamBamumBatakBuhidDogr"
|
|
| 0x00099f80 lis r9, 0xb ; 0xb7d57 ; "barendfinfoogc gp in intmapnilobjpc=ptrscvµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDash"
|
|
| 0x00099ff0 lis r4, 0xb ; 0xb7f69 ; "levellink mheappanicpc r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27"
|
|
| 0x0009a038 lis r9, 0xd ; 0xbd845 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x0009a0f0 lis r8, 0xd ; 0xb9bf3 ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x0009a13c lis r8, 0xd ; 0xb840d ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
|
|
| 0x0009a1b4 lis r7, 0xd ; 0xb820e ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x0009a248 lis r8, 0xd ; 0xb9c03 ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x0009a294 lis r8, 0xd ; 0xb8610 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
|
|
| 0x0009a308 lis r8, 0xd ; 0xb8207 ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x0009a384 lis r7, 0xd ; 0xb820e ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x0009a3e0 lis r8, 0xd ; 0xbd845 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Parse Golang 1.18 riscv64 Strings
|
|
FILE=bins/golang/go-re-sample-linux-riscv64
|
|
CMDS=<<EOF
|
|
aalg
|
|
s main
|
|
e asm.cmt.col=0
|
|
pdr~"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
| 0x00099898 auipc t2, 0x1e ; 0xb7b60 ; "foogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOGCLEAFLisu"
|
|
| 0x00099910 auipc t0, 0x1e ; 0xb7f74 ; "enableerrno objectselectstringstructsweep sysmontimersuint16uint32uint64 name: tail: (scan (scan) MB in Value> allocs dying="
|
|
| 0x00099944 auipc t2, 0x1e ; 0xb7c70 ; "namepc profra roots + s0 s1 s10 s11 s2 s3 s4 s5 s6 s7 s8 s9 sbrksp t0 t1 t2 t3 t4 t5 t6 tp trueuint -%s .."
|
|
| 0x00099998 auipc t2, 0x1e ; 0xb7b57 ; "barendfinfoogc gp in intmapnilobjpc=ptrµsμs <== at fp= is lr: of on pc= sp: sp=) = ) m=+Inf,r2=-Inf3125: p=AhomChamDashGOG"
|
|
| 0x00099a10 auipc t0, 0x1e ; 0xb7dd8 ; "levelmheappanicscav schedsleepslicesudogsweeptracetrap:uint8valuewrite B -> Value addr= alloc base code= ctxt: curg= free goi"
|
|
| 0x00099a60 auipc t1, 0x3e ; 0xbd602 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
| 0x00099b4c auipc t1, 0x3e ; 0xb99cd ; "subcommand 'bar'subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABC"
|
|
| 0x00099ba4 auipc t1, 0x3e ; 0xb81c2 ; " level: bytes, etypes is not maxpc= mcount= minLC= minutes nalloc= newval= nfreed= packed= pointer stack=[ status ) errno="
|
|
| 0x00099c30 auipc s0, 0x3e ; 0xb7fc3 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x00099cf8 auipc t1, 0x3e ; 0xb99dd ; "subcommand 'foo'time: bad [0-9]*workbuf is empty spinningthreads=, 0, {interval: {, p.searchAddr = 0123456789ABCDEFX0123456789ab"
|
|
| 0x00099d50 auipc t1, 0x3e ; 0xb83c2 ; " enable: (forced) -> node= B exp.) B work ( blocked= in use)\n lockedg= lockedm= m->curg= marked method: ms cpu, not in [ "
|
|
| 0x00099dd0 auipc t1, 0x3e ; 0xb7fbc ; " name: tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=,"
|
|
| 0x00099e64 auipc s0, 0x3e ; 0xb7fc3 ; " tail: (scan (scan) MB in Value> allocs dying= locks= m->g0= nmsys= pad1= pad2= s=nil\n text= zombie% CPU ((PANIC=, goid=,"
|
|
| 0x00099edc auipc t0, 0x3e ; 0xbd602 ; "expected 'foo' or 'bar' subcommandsfile type does not support deadlinefindrunnable: netpoll with spinninggreyobject: obj not poi"
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped windows go1.21 binary
|
|
FILE=bins/golang/go-re-sample-windows-amd64-go121.exe
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1604
|
|
0x00490237 str.foo
|
|
0x00490292 str.enable
|
|
0x004902a0 str.enable
|
|
0x004902b0 str.name
|
|
0x004902c0 str.name
|
|
0x004902f2 str.bar
|
|
0x0049034d str.level
|
|
0x0049035b str.level
|
|
0x00490448 str.subcommand__bar
|
|
0x00490495 str.level:
|
|
0x0049051d str.tail:
|
|
0x004905c2 str.subcommand__foo
|
|
0x00490615 str.enable:
|
|
0x00490692 str.name:
|
|
0x0049071e str.tail:
|
|
0x00490780 str.expected__foo__or__bar__subcommands
|
|
HEAD
|
|
0x4911d6 4 4 tls\b
|
|
0x491244 4 4 flag
|
|
0x49124a 5 4 Name
|
|
0x491250 4 4 keys
|
|
0x491256 4 4 Args
|
|
0x49125c 4 4 Bool
|
|
0x491262 4 4 Func
|
|
0x491268 4 4 Init
|
|
0x49126e 4 4 NArg
|
|
0x491274 5 4 Uint
|
|
TAIL
|
|
0x4b2609 27 27 flag needs an argument: -%s
|
|
0x4b3a8f 33 33 invalid value %q for flag -%s: %v
|
|
0x4b25ee 27 27 invalid boolean flag %s: %v
|
|
0x4b4325 36 36 invalid boolean value %q for -%s: %v
|
|
0x4b3e4c 34 34 flag provided but not defined: -%s
|
|
0x4ae39e 3 3 foo
|
|
0x4ae4d9 5 5 level
|
|
0x4ae5d3 6 6 enable
|
|
0x4ae40d 4 4 name
|
|
0x4ae3a1 3 3 bar
|
|
20681
|
|
EOF
|
|
RUN
|
|
|
|
NAME=Resolve all symbols on a stripped linux go1.21 binary
|
|
FILE=bins/golang/go-re-sample-linux-amd64-go121
|
|
CMDS=<<EOF
|
|
aalg
|
|
fl~sym.go.~?
|
|
pdfs @ main ~str.
|
|
# Attempt to get some reference strings when the count changes with izq.
|
|
echo HEAD
|
|
izq~:..10
|
|
echo TAIL
|
|
izq~:-10..
|
|
izq~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1587
|
|
0x004875b7 str.foo
|
|
0x00487612 str.enable
|
|
0x00487620 str.enable
|
|
0x00487630 str.name
|
|
0x00487640 str.name
|
|
0x00487672 str.bar
|
|
0x004876cd str.level
|
|
0x004876db str.level
|
|
0x004877c8 str.subcommand__bar
|
|
0x00487815 str.level:
|
|
0x0048789d str.tail:
|
|
0x00487942 str.subcommand__foo
|
|
0x00487995 str.enable:
|
|
0x00487a12 str.name:
|
|
0x00487a9e str.tail:
|
|
0x00487b00 str.expected__foo__or__bar__subcommands
|
|
HEAD
|
|
0x488211 4 4 flag
|
|
0x488217 4 4 Name
|
|
0x48821d 4 4 keys
|
|
0x488223 4 4 Args
|
|
0x488229 4 4 Bool
|
|
0x48822f 4 4 Func
|
|
0x488235 4 4 Init
|
|
0x48823b 4 4 NArg
|
|
0x488241 4 4 Uint
|
|
0x488247 4 4 name
|
|
TAIL
|
|
0x4a6752 27 27 flag needs an argument: -%s
|
|
0x4a7bf3 33 33 invalid value %q for flag -%s: %v
|
|
0x4a6737 27 27 invalid boolean flag %s: %v
|
|
0x4a84a8 36 36 invalid boolean value %q for -%s: %v
|
|
0x4a7ff2 34 34 flag provided but not defined: -%s
|
|
0x4a2cde 3 3 foo
|
|
0x4a2e19 5 5 level
|
|
0x4a2f0e 6 6 enable
|
|
0x4a2d4d 4 4 name
|
|
0x4a2ce1 3 3 bar
|
|
3249
|
|
EOF
|
|
RUN
|