-1

Win32実行可能ファイル(できればC#)からRT_RCDATAセクションをどのように抽出しますか?

現在、これを行う方法を知っている唯一の方法は、VisualStudioでEXEを開くことです。可能であれば、これを完全にC#で実行できるようにしたいと思います。

ありがとう!

4

2 に答える 2

2

P /InvokeLoadResourceが最も安全な方法です。

それ以外の場合は、独自のP/Eプロセッサを作成する必要があります。PEプロセッサの例。プロセッサは世界の終わりではありませんが、P/Invokeよりもはるかに複雑であることがわかります。

ツールに関する限り、ほとんどのP/Eブラウザがこれを行います。例えば。P / E Explorerは利用可能ですが、実際には開発されていません。私はこのようなものにもIDAProを使用しました。クイックIDAプラグインはこれを簡単に実行します。

于 2008-09-23T04:54:39.853 に答える
0

実行可能ファイルからタイプRCDATAのリソースを読み取ろうとしていると仮定します(「実行可能セクション」は別の意味であることに注意してください。PEファイルの.text、.data、.rdataなどの部分を指します)。現在のアセンブリから読みたい場合は、次の方法を示すチュートリアルがあります。GetManifestResourceStreamを使用して、GetManifestResourceNamesメソッドとGetManifestResourceStreamメソッドを使用して埋め込みリソースにアクセスする。

現在の実行可能ファイルから読み取りたくない場合は、ここに示すような方法を使用できます。

これらのメソッドは、100%.NETであり、プラットフォームのデータ型との間で引数をマーシャリングし、すべての戻り値を検証したことを確認する必要がないというPInvokeよりも優れています。

于 2008-09-23T04:56:57.167 に答える