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

解決


Tomoki  2005-11-09 10:38:00  No: 59511

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

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

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


シャノン  2005-11-09 12:03:35  No: 59512

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

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

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


シャノン  2005-11-09 12:10:45  No: 59513

それはそれとして。

リソースを差し替える 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 13:54:29  No: 59514

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加