perl hexdump
发布时间:2020-12-16 00:03:34 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/perl#author : morphad#date : 2013-12-26use warnings;use strict;use IO::File;use Fcntl;sub hexdump{ my $data = shift; my $offset = shift; my @darray = unpack("C*",$data); my $idx = $offset - $offset % 16; if ($idx != $offset) { p
#!/usr/bin/perl #author : morphad #date : 2013-12-26 use warnings; use strict; use IO::File; use Fcntl; sub hexdump { my $data = shift; my $offset = shift; my @darray = unpack("C*",$data); my $idx = $offset - $offset % 16; if ($idx != $offset) { printf "%08X | ",$idx; while ($idx < $offset) { printf " " if (($idx % 2) == 0); printf "--"; $idx++; } } $idx = $offset; foreach my $byte (@darray) { if (($idx % 16) == 0) { printf "n" if ($idx != 0); printf "%08X | ",$idx; } printf " " if (($idx % 2) == 0); printf "%02X",$byte; $idx++; } printf "nn"; } sub usage { print "usage : hexdump.pl file offset lenn"; print "hexdump content of file,len bytes at offsetn"; exit 2; } my $file = shift; my $offset = shift; my $len = shift; unless ($file && $offset && $len) { usage; } my $fh = IO::File->new(); $fh->binmode(":raw"); unless ($fh->open($file,"<")) { die "cannot open $file"; } my $buf; my $readn; $fh->seek($offset,SEEK_SET); $readn = $fh->read($buf,$len) || die "cannot read buf"; die "read err" if ($readn != $len); print "=====hex dump [$file]n"; hexdump $buf,$offset; $fh->close(); 1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |