Below is a list of the command line utilities with short descriptions and usage information. Examples to come.
Base64 encode data supplied via an argument, file, or standard input.
Usage: b64 [options] <data | blank for stdin>
-h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -l, --length LEN Output LEN chars per line
Binary grep. Prints ‘inspected’ matches and offset information.
Usage: bgrep [options] <subject> <file | blank for stdin> -h, --help Show this message -v, --version Show version and exit -x, --[no-]hex Specify subject as hex (default: false) -r, --[no-]regex Specify subject as regex (default: false) -a, --align=BYTES Only match on alignment boundary -n, --[no-]filename Suppress prefixing of filenames.
Sends data through any plugboard that implements a Plug::Blit listener for out-of band input.
See also: telson
Usage: blit [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -t, --trans-protocol=PROTO Blit transport protocol TCP/UDP -b, --blitsrv=ADDR:PORT Where to send blit messages -i, --peer-index=IDX Index for remote peer to receive -l, --list-peers Lists the peer array for the target -k, --kill Stops the remote event loop.
Prints a character n-times.
Usage: c 100 A; # print 100 A's'
Generates a crc32 checksum for data provided via stdin or file
Usage: crc32 [options] -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -r, --range=START[:END] Start and optional end range -x, --hexrange=START[:END] same, but in hex
Base64 decode an encoded chunk supplied via argument, file, or standard input.
Usage: d64 [options] <data | blank for stdin>
-h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME
Reverses a hexdump back to raw data. Designed to work with hexdumps created by Unix utilities like ‘xxd’ as well as ‘hexdump -C’.
Usage: dedump [options] <input-file | blank for stdin> -h, --help Show this message -v, --version Show version and exit -l, --length LEN Bytes per line in hexdump (default: 16)
This is a plug-board message feeder from static data sources. The “feed” handles messages opaquely and just plays them as a server or client in the given sequence.
Feed can do the following things with minimum fuss:
-
Import messages from files, yaml, or pcap
-
Inject custom/modified messages with “blit”
-
Run as a server or client using UDP or TCP
-
Bootstrap protocols without a lot of work up front
-
Skip uninteresting messages and focus attention on the fun ones.
-
Replay conversations for relatively unfamiliar protocols.
-
Observe client/server behaviors using different messages at various phases of a conversation.
Usage: feed [options] host:port
-h, --help Show this message -v, --version Show version and exit -o, --output=FILE Output to file -l, --listen=(ADDR:?)PORT Server - on port (and addr?) -s, --source=(ADDR:?)PORT Bind client on port and addr -b, --blit=(ADDR:)?PORT Where to listen for blit -i, --[no-]initiate Send the first message on connect -e, --[no-]end End connection when feed is exhausted --[no-]step 'Continue' prompt between messages -u, --udp Use UDP instead of TCP -r, --reconnect Attempt to reconnect endlessly. -q, --quiet Suppress verbose messages/dumps -Q, --squelch-exhausted Squelch 'FEED EXHAUSTED' messages Sources: (can be combined) -f, --from-files=GLOB Import messages from raw files -x, --from-hex=FILE Import messages from hexdumps -y, --from-yaml=FILE Import messages from yaml -p, --from-pcap=FILE[:FILTER] Import messages from pcap
Converts a string or raw data to hex characters. Input can be supplied via stdin, a string argument, or a file (with -f).
Usage: hexify [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -l, --length LEN Hexify in lines of LEN bytes -d, --delim=DELIMITER DELIMITER between each byte -p, --prefix=PREFIX PREFIX before each byte -s, --suffix=SUFFIX SUFFIX after each byte
Takes input from a blob of data and output it with its binary length prepended.
Usage: len [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -n, --nudge INT Add integer to length -s, --size=SIZE Size of length field in bytes -x, --[no-]swap Swap endianness. Default=big -t, --[no-]total Include size word in size -l, --length=LEN Ignore all else and use LEN
A blit-able reverse TCP proxy. Displays traffic hexdumps.
Usage: plugsrv [options] target:tport[@[laddr:]lport] <target:tport> = the address of the target service <@laddr:lport> = optional address and port to listen on Options: -o, --output FILE send output to a file -l, --listen ADDR:PORT optional listener address:port (default: 0.0.0.0:<tport>) -q, --[no-]quiet Suppress/Enable conversation dumps. -b, --blit ADDR:PORT specify blit listener [address:]port (default: 127.0.0.1:25195) --[no-]target-tls enable/disable TLS to target --[no-]server-tls enable/disable TLS to clients -h, --help Show this message
Lazy shortcut for ruby -e "..." All commandline arguments get smeared into a ruby statement via 'eval()'.
A utility much like Unix ‘strings’ – implemented in ruby.
Usage: rstrings [options] <file | blank for stdin> -h, --help Show this message -v, --version Show version and exit -s, --start=OFFSET Start at offset -e, --end=OFFSET End at offset -t, --encoding-type=TYPE Encoding: ascii/unicode/both (default=both) -l, --min-length=NUM Minimum length of strings (default=6) -a, --align=ALIGNMENT Match only on alignment (default=none)
Returns a slice from input. Just a shell interface to a string slice operation.
Usage: slice [options] start (no args when using -r|-x) -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -r, --range=START[:END] Start and optional end range -x, --hexrange=START[:END] same, but in hex
This is an implementation of the original blackbag “telson” using ruby and eventmachine.
Telson is for doing the following things with minimum fuss:
-
Run as a stubbed network client using UDP or TCP
-
Use blit to communicate with the other side.
-
Debug network protocols
-
Observe client/server behaviors using different messages at various phases of a conversation.
Usage: telson [options] host:port
-h, --help Show this message -v, --version Show version and exit -o, --output=FILE Output to file -q, --quiet Turn off verbose logging -d, --dump-format=hex/raw Output conversations in hexdump or raw -b, --blit=ADDR:PORT Where to listen for blit -u, --udp UDP mode -S, --start-tls Initiate TLS -r, --reconnect Attempt to reconnect endlessly. -s, --source=(ADDR:?)PORT Bind client on port and addr
unhexify converts a string of hex bytes back to raw data. Input can be supplied via stdin, a hex-string argument, or a file containing hex (use -f).
Usage: unhexify [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -d, --delim DELIMITER DELIMITER regex between hex chunks
Decodes a url percent-encoded string. Input from stdin, file, or command-line argument.
Usage: urldec [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -p, --[no-]plus Convert '+' to space (default is true)
Encodes data as a url percent-encoded string. Input from stdin, file, or command-line argument.
Usage: urlenc [options] <data | blank for stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME -p, --[no-]plus Convert spaces to '+' (default is false)
Repeating string xor. Takes input and XOR’s it against a string. String can be provided in hex.
Usage: xor [options] -k|-s <key> <data | stdin> -h, --help Show this message -v, --version Show version and exit -f, --file FILENAME Input from FILENAME Key options (one of the following is required): -s, --strkey STRING xor against bare STRING -x, --hexkey HEXSTR xor against decoded HEXSTR