NAME

Win32::PEFile - Portable Executable File parser

SYNOPSIS

use Win32::PEFile;

my $pe = Win32::PEFile->new (file => 'someFile.exe');

print "someFile.exe has a entry point for EntryPoint1"
    if $pe->getEntryPoint ("EntryPoint1");

my $strings = $pe->getVersionStrings ();
print "someFile.exe version $strings->{'ProductVersion'}\n";

Methods

Win32::PEFile provides the following public methods.

new (%parameters)

Parses a PE file and returns an object used to access the results. The following parameters may be passed:

-file: file name, required

The file name (and path if required) of the PE file to process.

getEntryPoint ($entryPoint)

Returns true if the given entry point exists in the exports table.

$entryPoint: required

Name of the entry point to search for in the Exports table of the PE file.

getVersionStrings ($language)

Returns a hash reference containing the strings in the version resource keyed by string name.

$language: optional

Preferred language for the strings specified as a MicroSoft LangID. US English is preferred by default.

If the preferred language is not available one of the available languages will be used instead.

getFixedVersionValues ($language)

Returns a hash reference containing the fixed version resource values keyed by value name.

$language: optional

Preferred language for the strings specified as a MicroSoft LangID. US English is preferred by default.

If the preferred language is not available one of the available languages will be used instead.

BUGS

Please report any bugs or feature requests to bug-Win32-PEFile at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-PEFile. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

This module is supported by the author through CPAN. The following links may be of assistance:

SEE ALSO

http://kishorekumar.net/pecoff_v8.1.htm

Win32::Exe and Win32::PEFile

Win32::PEFile overlaps in functionality with Win32::Exe. Win32::Exe is a much more mature module and is more comprehensive. The only current (small) disadvantages of Win32::Exe are that it is not pure Perl and that has a larger dependency tree than Win32::PEFile.

For some applications a larger problem with Win32::Exe is that some file editing operations are not portable across systems.

The intent is that Win32::PEFile will remain pure Perl and low dependency. Over time PEFile will acquire various editing functions and will remain both cross- platform and endien agnostic.

AUTHOR

Peter Jaquiery
CPAN ID: GRANDPA
grandpa@cpan.org

COPYRIGHT AND LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.