Для преобразования этого значения в представление строки байтов используйте pack
. Константа, с которой вы работаете, является 32-битным значением с прямым порядком байтов, поэтому в шаблоне указано «V».
$ perl -e 'print pack q[V], 0x00004550' | hd
00000000 50 45 00 00 |PE..|
00000004
Подробнее см. perldoc -f pack
.
Вам, вероятно, не нужно искать строки типа «PE \ 0 \ 0», просто используйте их, чтобы проверить, является ли файл, который вы читаете, на самом деле PE-файлом. Секция 'PE' обычно идет сразу после секции DOS ('MZ'), которая имеет собственное поле длины.
(Я согласен, что Win32::Exe
может стоить посмотреть, в зависимости от того, что вы хотите сделать.)