
WindowsのEXEプログラムが実行時に必要とするデータ(ファイル)を
EXEファイルに格納する方法はいろいろある。
1. グローバル変数が格納される領域に格納する(コード領域でもおk)
2. リソース領域に格納する
これらは実行後にプロセスメモリからデータを取得できるけど、格納するファイルが巨大な場合、
そのぶん領域のサイズも大きくなる。
3. EXEファイルの末尾にデータをくっつける
適当なEXEファイルの末尾に適当なデータを追加してもまったく問題なく実行できるはず。
そのプログラムが改竄チェックをしていれば追加前と同じ挙動ではないかもしれないが、
少なくともWindowsによるプログラムのロード(起動)の段階ではエラーにならないはず。
この末尾にくっついたデータはメモリに読み込まれないので必要に応じて自分自身のEXEファイル
からデータを読み込まないといけない。データの読み込みは普通のファイルと同じ。
この方法でデータを格納してるソフトウェアがあって、この方法のよくない点を指摘してやろう
と思ったけどまったく思いつかなかったので、もしあったら是非教えてください。
EXEファイルに格納する方法はいろいろある。
1. グローバル変数が格納される領域に格納する(コード領域でもおk)
2. リソース領域に格納する
これらは実行後にプロセスメモリからデータを取得できるけど、格納するファイルが巨大な場合、
そのぶん領域のサイズも大きくなる。
3. EXEファイルの末尾にデータをくっつける
適当なEXEファイルの末尾に適当なデータを追加してもまったく問題なく実行できるはず。
そのプログラムが改竄チェックをしていれば追加前と同じ挙動ではないかもしれないが、
少なくともWindowsによるプログラムのロード(起動)の段階ではエラーにならないはず。
この末尾にくっついたデータはメモリに読み込まれないので必要に応じて自分自身のEXEファイル
からデータを読み込まないといけない。データの読み込みは普通のファイルと同じ。
この方法でデータを格納してるソフトウェアがあって、この方法のよくない点を指摘してやろう
と思ったけどまったく思いつかなかったので、もしあったら是非教えてください。

| ホーム |