2012-04-19 6 views
1

PEファイルの特定のオフセットに変数(C++で)を格納する方法はありますか? 同様の質問:データセクションに格納される変数の特定の順序を定義できますか?特定のオフセットで変数を格納する方法

実行可能ファイルに設定を保存できるプログラムがあると聞いています。

+1

これは、そのようなオフセットでそれらを保存できると思っているように、特定の問題を解決しています。あなたがその本当の問題について尋ねたり、少なくともそれが何であるかを伝えるときには、より多くの選択肢が用意されている方が便利かもしれません。 – PlasmaHH

+0

私は実際にそれを実装する必要はありません。しかし、以前は実行可能ファイルに設定を保存しようとしていましたが、そうする方法が見つかりませんでした。 – Samuel

答えて

1

データのサイズによっては、PEイメージ(MS-DOSスタブなど)の廃止予定(未使用)領域を使用して変数を格納することができます。これらの未使用領域の多くのオフセットはよく知られています(PE形式で定義されているため)。

+0

DLLは再配置できることに注意してください。 EXEは実際には再配置されません(常に最初から開始されるため、メモリ内の他のPEイメージと競合することはありません)。 – mox

1

「最も簡単な方法」は、リソースセクションを使用することです。オフセットは必要ありません。LoadStringがIDを取得しますが、これは再構築よりも安定しています。しかし、名前が示すように、それは負荷部分だけです。 Windowsは実行中に実行可能ファイルをロックするため、SaveStringの部分はの部分がになります。

あなたのプログラムはおそらく\Program Files\に格納されていて、ユーザーはとにかくそこに書き込むことができないので、ロックは本当に重要ではありません。

+0

ありがとう、私は実際に純粋なオフセットソリューションに興味があります:)。 – Samuel

関連する問題