独自ツールからEXEファイルを生成するには?

解決


Tomoki  2005-11-09 01:38:00  No: 59511  IP: 192.*.*.*

圧縮ツールでよく見かける、自己解凍形式(EXE)の出力とか。
そんなのを創るにはどうしたらいいでしょう?

アプリケーションとデータの合成の方法は?……って感じですかね。

EXE内のリソースデータをすり替える方法とか、EXEのフォーマットとかの情報とかでもいいので、よろしくお願いします。

編集 削除
シャノン  2005-11-09 03:03:35  No: 59512  IP: 192.*.*.*

自己解凍イメージは、圧縮ファイルを解凍するための小さなアプリと、書庫ファイルを単純にくっつけただけです。
くっつける方法の一つとしてはこんな感じ。

copy /b decompressor.exe + archive.zip sfx.exe

これがやりたいだけであれば、別にリソース差し替えも EXE フォーマット解析も必要ありません。
実行された decompressor.exe は自分のファイルの内容を走査し、書庫ファイルの先頭っぽいところを見つけて、そこから解凍しているだけだと聞いたことがあります。

編集 削除
シャノン  2005-11-09 03:10:45  No: 59513  IP: 192.*.*.*

それはそれとして。

リソースを差し替える API が用意されています。
UpdateResource および関連関数を調べてみてください。

EXE フォーマットについてならば、この辺がおすすめ。
http://web.archive.org/web/20040622153807/http://msdn.microsoft.com/msdnmag/issues/02/02/PE/default.aspx
http://web.archive.org/web/20040607041827/http://www.msdn.microsoft.com/msdnmag/issues/02/03/PE2/default.aspx

オリジナルの記事はなくなっちゃったようなので、Internet Archive に保存されているものを。
(うわぁ、もったいない…資料価値高いページだったのに)

編集 削除
Tomoki  2005-11-09 04:54:29  No: 59514  IP: 192.*.*.*

なるほど。
くっつけるだけですかw
よく考えたら簡単ですね。(思いつくのは難しいが^^;

ちょっと気になるのが、exe実行するとデータの部分も勝手にメモリに乗っちゃうんですかね?
いや、この辺は少し調べればわかりそうですね^^;

ありがとうございました。

編集 削除