2010-02-12 34 views
3

有許多程序可以讓你打包幾個文件,並生成一個可執行文件,它具有必要的代碼來提取它們。不知何故,這些文件駐留在可執行文件中。我有興趣做同樣的事情;這是如何完成的?如何製作自解壓縮可執行文件?

僅供參考,我主要關注Windows .exe文件,如果它有所作爲。

+0

「how-stuff-works」標籤? –

+0

是的,如果我知道它是如何完成的(或它是如何工作的),那麼我可以做到。 – Phil

+0

@Mitch:這些東西已經被使用了30多次,它沒有C++標籤,但有人會爲它獲得分類標記。 –

回答

2

看看這個:Article

+0

值得在文章中強調的是Windows API中的UpdateResource()函數。 – Phil

0

還有一些產品,如pkzipwinzip該爲你做它。如果你的時間是值得的,那將會更有效率。

1

自解壓.exe文件通常是與一個小程序連接在一起的壓縮文件(zip,rar,tar等),然後執行提取,然後執行從壓縮文件中提取的程序。

一個非常複雜的應用程序可以將存檔提取到內存中,然後跳轉到解壓縮的代碼並運行它,但在過去的時代,這樣的事情更容易完成。

如果您想在Windows中編寫自己的應用程序,您可以創建一個小型控制檯應用程序來完成提取操作,並且可以在控制檯程序資源中包含「真實」程序。

+0

這些檔案文件是否附加到提取的「真實」程序? – Phil

+0

在過去的日子裏,是的,現在我認爲如果你的檔案沒有在exe頭文件中說明,你會遇到病毒掃描程序的問題。 –

0

UPX是一個衆所周知的Windows.EXE打包程序,可以在這裏找到WikiPedia。這裏是關於UPX的sourceforge的主要網站。

希望這會有所幫助, 最好的問候, 湯姆。