/ / Как мога да прочета заглавията от 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 за детайли.

Вероятно няма да се наложи да потърсите низовекато "PE

(Съгласен съм Win32::Exe може да си заслужава да изглежда, в зависимост от това, което искате да направите.)