/ / Як я можу прочитати заголовки з портативного виконуваного файлу WinNT за допомогою Perl? - perl, портативний

Як я можу читати заголовки з портативного виконуваного файлу WinNT за допомогою Perl? - Perl, портативний-виконуваний файл

Я хочу працювати з файлами PE в Perl і не знайшов модуля, тому я думаю, що напишу свій (вже зробив це в delphi раз).

Я отримав тільки одну проблему, коли зіставляючи виконуваний файл з буфером, як я можу шукати восьмикутники, такі як 0x00004550 (IMAGE_NT_SIGNATURE), перетворювати їх назад до записуваних рядків тощо?

Відповіді:

9 для відповіді № 1

Там є Модуль Perl для керування портативними виконуваними файлами: Win32::Exe.

Я не маю підказки щодо вашого точного питання, але якщо ви все ще хочете написати власну бібліотеку, Win32::Exe може бути хорошим посиланням.


2 для відповіді № 2

Для перетворення цього значення на представлення тесту використовуйте pack. Константа, з якою ви маєте справу, має малобіжне значення 32 біта, так що "V" в шаблоні.

$ perl -e "print pack q[V], 0x00004550" | hd
00000000  50 45 00 00                                       |PE..|
00000004

Побачити perldoc -f pack для подробиць.

Можливо, вам не потрібно шукати рядкияк "ПЕ"

(Я згоден Win32::Exe може бути варто подивитися, залежно від того, що ви хочете зробити.)