package require binary proc hexdump data { set dump "" set n 0 while {$n < [string bytelength $data]} { set bytes [string byterange $data $n $($n+15)] binary scan $bytes H* hex set hex [regexp -all -inline .. $hex] regsub -all -- {[^a-z]} $bytes . ascii append dump [format "%04X: %-48s %-16s\n" $n $hex $ascii] incr n 16 } puts $dump }