Parsing win32 exe / dll files
use Data::ParseBinary::Executable::PE32 qw{$pe32_parser}; my $data = $pe32_parser->parse(CreateStreamReader(File => $fh));
Can parse a Windows (and \s-1DOS\s0?) \s-1EXE\s0 and \s-1DLL\s0 files. However, when building it back, there are some minor differences from the original file, and Windows declare that it's not a valid Win32 application.
This is a part of the Data::ParseBinary package, and is just one ready-made parser. please go to the main page for additional usage info.