將多個文件合並成一個最終可執行文件,運行這個最終合成文件後,就相當於運行了合並前的多個文件。這種程序在木馬程序合並中會經常用到,你想知道它是怎麼用程序實現的麼?下面我就拿我用VC6.0做的一個文件捆綁器的例子代碼來告訴你:
基本構成思想:其實,其中的構成思想非常簡單。合並文件時:建立一個新的二進制文件,先寫入你的自身捆綁程序的數據和其文件長度,再寫入你要捆綁的第一個文件的數據和其文件長度,後再直接寫入你要捆綁的第二個文件的數據和文件長度……,最後可直接寫入你要捆綁的最後一個文件的數據(不需其文件長度)。分解釋放最終合成文件時,也就是將上面的方法思想倒過來既可:打開最終合成文件,讀取源自身捆綁程序文件長度,將文件指針移到自身捆綁程序數據後,讀取第一個被綁定文件的長度,接著讀取其長度的文件數據並寫入到一新建文件1中,再讀取第二個被綁定文件的長度,接著讀取其長度的數據並寫入到新建文件2中……,直到最後直接讀取最後一個被綁定文件的數據並將其寫入到最後一個新建文件中既可。(下面實例僅告訴你如何實現二個文件的捆綁,至於多個文件的捆綁,讀者只需略加改動既可,詳情請查看下載後的實例代碼。)下面我來講講文件捆綁最核心的部分,以及如何具體將其用代碼來實現的方法:
1、捆綁多個文件為一個可執行程序
先得到自身捆綁程序的文件長度和第一個要捆綁文件的文件長度,枚舉第一個要捆綁文件有無圖標,有的話就用它做為最終生成文件的圖標,否則用自身捆綁程序所帶默認圖標做最終生成文件的圖標。在新建二進制文件中寫入自身捆綁程序的數據和其文件長度,再寫入第一個要捆綁文件的數據及其文件長度,最後直接寫入第二個文件的數據既可。