私はPerlでPEファイルを扱いたいのでモジュールを見つけられませんでしたので、私は自分自身で書くと思います(すでにこれをデルファイで行っています)。
実行可能ファイルをバッファにマッピングするときに問題が1つしかない、0x00004550(IMAGE_NT_SIGNATURE)のような8進数をどのように検索し、書き換え可能な文字列に変換するのですか?
回答:
回答№1については9そこ は 移植可能な実行ファイルを操作する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
あなたがしたいことに応じて一見価値があるかもしれません。)