in reply to Re^3: Get EXE VersionInfo
in thread Get EXE VersionInfo
Thank you to help me, i find the first problem, variable $ts not declared, copy and past change the code to $t"+"s not $ts.
But now, the program return only values to diferent version files. see:
avaserver:~/teste-rnt # ./exetime.pl V190820081243.exe -> ( Version 1.0.11 )
T190820081243.exe : Fri Jun 19 19:22:17 1992
javaserver:~/teste-rnt # ./exetime.pl V300720081251.exe -> ( Version 1.0.12 )
T300720081251.exe : Fri Jun 19 19:22:17 1992
The code:
#!/usr/bin/perl -slw
use strict;
open EXE, '<:raw', $ARGV[0] or die "$ARGV[0] : $!";
my $dos = do{ local $/ = \65536; <EXE> };
die "$ARGV[0] is not a .exe or .dll (sig='${ \substr $dos, 0, 2 }')"
unless substr( $dos, 0, 2 ) eq 'MZ';
my $coffoff = 8+ unpack 'x60 V', $dos;
read( EXE, $dos, $coffoff - 65536 + 4, 65536 ) or die $!
if $coffoff > 65536;
my $ts = unpack "x$coffoff V", $dos;
print "$ARGV[0] : ", defined $ts
? ( scalar( localtime $ts) || "has unfathomable timestamp value $ts" )
: 'has no timestamp';
|
|---|