exd Code
A command line tool to manage bytes in hex dumps or packet captures
Brought to you by:
gsalsbery
The edit hex dump tool, exd, is a bash-wrapped AWK script which aids in examining and/or editing hex, octal or binary bytes in hex dumps and packet capture files. It is meant to be used in conjunction with hex dump tools such as xxd, od, hexdump and hd, and with packet capture dump tools such as tshark and text2pcap. The exd script may be used directly with binary files and pcap files, but it will call xxd or tshark/text2pcap to do the heavy lifting. There are two main exd scripts, exd and exd.awk. The bash wrapper, exd, depends on exd.awk. These should be placed in /usr/local/bin or wherever you wish to put 3rd party executables. The two files exdg and exd.gawk are gawk versions of exd, with FIELDWIDTHS and with capture groups enabled. These may be used in addition to, or instead of, exd and exd.awk. The two files exdm and exd.mawk are mawk versions of exd. These may be used in addition to, or instead of, exd and exd.awk. The man page, exd.1 or exd.1.gz, should be placed in /usr/share/man/man1. The demo script, exd_demo, may be put in any directory with write permissions. When run it will create a subdirectory called test_files, and will populate it with test hex dumps, octal dumps, binary dumps and packet capture dumps. The two unit test scripts, exd_test and exd_awk_test, are included in case you wish to do a Verification and Validation procedure on exd and want some examples. If you wish to run them, be aware that they take an incredibly long time (an hour or three) to run with all the tests turned on. These tests, as with exd_demo, create a subdirectory called test_files, and populate it with test files. Unlike exd_demo, they also attempt to create pcap files using text2pcap, and will fail if that executable isn't on your path unless you comment out those lines.