Perlを使用してWinNTポータブル実行可能ファイルからヘッダーを読み取るにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1418855

  •  07-07-2019
  •  | 
  •  

質問

PerlでPEファイルを操作したいのですが、モジュールが見つからなかったので、自分で作成すると思います(既にデルファイで作成しました)。

実行可能ファイルをバッファにマッピングするときに、0x00004550(IMAGE_NT_SIGNATURE)のようなオクタルを検索し、書き込み可能な文字列に変換し直すなど、1つの問題しかありませんか?

役に立ちましたか?

解決

ポータブル実行可能ファイルを操作するための Perlモジュールがあります: < code> Win32 :: Exe

正確な質問の手がかりはありませんが、独自のライブラリを作成したい場合は、 Win32 :: Exe が参考になります。

他のヒント

その値をバイト文字列表現に変換するには、 pack を使用します。扱っている定数はリトルエンディアンの32ビット値なので、テンプレートでは「V」です。

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

詳細については、 perldoc -f pack を参照してください。

おそらく、&quot; PE \ 0 \ 0&quot;のような文字列を検索する必要はありません。実際に読んでいるファイルが実際にPEファイルかどうかを確認するためにそれらを使用してください。 「PE」セクションは通常、独自の長さフィールドを持つDOS(「MZ」)セクションの直後にあります。

(何をしたいのかにもよりますが、 Win32 :: Exe は一見の価値があるかもしれません。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top