summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nsis/getpearch.pl7
1 files changed, 4 insertions, 3 deletions
diff --git a/nsis/getpearch.pl b/nsis/getpearch.pl
index 8a48adac..e524372b 100644
--- a/nsis/getpearch.pl
+++ b/nsis/getpearch.pl
@@ -5,6 +5,7 @@
#
use strict;
+use bytes;
my %archnames = (
0x01de => 'am33',
@@ -37,9 +38,9 @@ open(my $fh, '<', $file)
read($fh, my $mz, 2);
exit 1 if ($mz ne 'MZ');
-exit 1 unless (seek($fh, 0x3c, 0));
-exit 1 unless (read($fh, my $pe_offset, 1) == 1);
-$pe_offset = unpack("C", $pe_offset);
+exit 0 unless (seek($fh, 0x3c, 0));
+exit 0 unless (read($fh, my $pe_offset, 4) == 4);
+$pe_offset = unpack("V", $pe_offset);
exit 1 unless (seek($fh, $pe_offset, 0));
read($fh, my $pe, 4);