Reversible hex dump utility (aka `xxd`)
Perl, 122 + 54 = 176 122 + 45 = 167

The forward script:

$/=$,;for(&lt;&gt;=~/.{1,16}/gs){$h="";$h.=sprintf"%*s%02x",++$m%2,"",ord for/./gs;
s/[^ -~]/./g;printf"%06x0:%-42s",$n++,$h;say}


And the reverse script:

/:(.+?)  /,print map{chr hex}$1=~/\w\w/gfor&lt;&gt;


(This one is interesting; there are all kinds of obscure bugs that can show up in the reverse script depending on the input, if you're not careful.)