|
Dump.pl
#!/usr/local/bin/perl
# (c)copyleft 2017-3-19 : Coded by shun kinoshita / knuhs
use strict;
use vars qw/ %HashTBL %DataTBL /; # Global の扱いにする
use lib 'C:/Users/恂/Documents/MyDoc/tym33/apl3/lib';
# ライブラリに追加するモジュールを置く場所を指定する
use JPGvivisect; # モジュール( JPGvivisect.pm )を指定する
my $directory = "C:/Users/恂/Documents/MyDoc/tym33/uploadDATA2";
my $jpgFile="IMG_0772.JPG";
my $jpgSTR;
# ファイルの大きさを調べる
stat("$directory/$jpgFile"); my $size = -s _;
# ファイルを読み込む
open(JPEG, "$directory/$jpgFile") || die "開けません: $!";
sysread(JPEG, $jpgSTR, $size) || die "入力エラー\n";
# sysread を使わないと 改行コード(0x0D0A) が 0x0A となり
# 0x0D が削除されてしまう
# 解析作業へ
my $SGMsize = JPGvivisect(\$jpgSTR, $size, $directory, $jpgFile);
if ( $SGMsize <= 0 )
{ print "データに異常があり解析できません。\n";
print "Dumpを継続しますか?\n";
system("pause");
}
# ダンプを開始します
print "▼$jpgFile\n";
Dumpit( \$jpgSTR );
close(JPEG);
exit;
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# (c) 2017-5-17 : Coded by shun kinoshita / knuhs
sub Dumpit
{
my $jpgRef = shift @_;
my ($c, $i);
my $pos = 0;
my $line = "[00000000: 0]:";
# start here
print " Hex : Dec : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n";
print "---------:----------------------------------------------------------\n";
$pos = 0;
for( $i = 0; $i < $size; $i++)
{
$c = unpack( "C", substr($$jpgRef, $pos++, 1) );
$line = $line . sprintf(" %02X", $c);
if ( ($i+1)%16 == 0 )
{ print("$line\n"); $line = sprintf("[%08X:%8d]:", $i+1, $i+1); }
# check End of File
}
print "$line(EOS)▼\n"; # End of String.
print "\n▼($pos), $size\n";
}
|
|

|
|