home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl
-
- # Usage: xdump [file]
-
- # Use the file they specified, if specified
-
- open(STDIN,$ARGV[0]) || die "Can't open $ARGV[0]: $!\n"
- if $ARGV[0];
-
- # Do it optimally as long as we can read 16 bytes at a time.
-
- while (($len = read(STDIN,$data,16)) == 16) {
- @array = unpack('N4', $data);
- $data =~ tr/\0-\37\177-\377/./;
- printf "%8.8lx %8.8lx %8.8lx %8.8lx %8.8lx %s\n",
- $offset, @array, $data;
- $offset += 16;
- }
-
- # Now finish up the end a byte at a time.
-
- if ($len) {
- @array = unpack('C*', $data);
- $data =~ y/\0-\37\177-\377/./;
- for (@array) {
- $_ = sprintf('%2.2x',$_);
- }
- push(@array, ' ') while $len++ < 16;
- $data =~ s/[^ -~]/./g;
- printf "%8.8lx ", $offset;
- printf "%s%s%s%s %s%s%s%s %s%s%s%s %s%s%s%s %s\n",
- @array, $data;
- }
-