2010-02-15 56 views
14

有沒有辦法將兩個exe文件合併爲一個,以編程方式,以便運行它將同時執行兩個較舊的exe文件。我在谷歌上發現了一些關於注入代碼或dll文件的東西,但是有可能兩個合併兩個exe文件或將exe注入到exe中?將兩個exe文件合併成一個編程

在此先感謝。

[編輯] 謝謝大家。只是對於那些說不可能的人,我不得不說我幾乎是按照某些人的建議去做的。它幾乎是這樣的(我不記得它是很久以前的全部):

[請注意:此算法與某些蠕蟲和病毒的算法非常相似。我不是黑客或病毒作家!並且這隻能用於實驗性或無害的原因 - 在代碼中犯錯可能會破壞目錄中的可執行文件。]

1- Exe檢查自身的大小以檢測是否有任何內容被附加到自身。若沒有,則:

 1.1- The exe finds other executable files in its directory (lets call one of them as victim!) 
    1.2- it makes a copy of itself (lets call it newMe) 
    1.3- it copies the other executable found in the directory to the end of newMe. 
    1.4- it deletes the other executable file found and renames newMe to its victim's name. 

2 - 如果該exe檢測到的東西已經被添加到它,然後:

 2.1- Then it copies data from itself (from ORIGINAL_FILE_SIZE to the end of file) to a new file (lets call it newBorn.exe) 
    2.2- It runs itself's code and then executes the newBorn. 

我說我幾乎做到了餘弦這樣的exe另追加exe自身。但是可以重複這個操作來將2個甚至3個或更多個可執行文件附加到一箇中並執行。你只需要知道書面程序的ORIGINAL_FILE_SIZE。

+1

exefusion有木馬惡意軟件。 – BioDeveloper 2013-08-22 06:57:51

回答

5

理論上,這是可能的,但它會從你身邊一些努力。

您可以將數據添加到一個exe文件,這是自解壓如何檔案工作。但是,您將需要自己的數據格式,類似於文件系統,因爲您只有一個平面的.exe文件。
看到這篇微軟文章(google上有很多文章)http://support.microsoft.com/?scid=kb%3Ben-us%3B84062&x=12&y=13

你打包你的兩個文件的exe文件必須提取這些文件,然後才能運行它們。

祝你好運。

5

不,您最好的選擇是創建一個運行兩個可執行文件的.bat文件(Windows)。

@echo off 
c:\path\to\first\exe\file1.exe 
c:\path\to\second\exe\file2.exe 

您也可以在Linux中創建一個shell script做同樣的事情

#!/bin/sh 
/path/to/first/exe/file1 
/path/to/second/exe/file2 

注意,這將文件2之前執行文件1。

+1

這不是一個好的建議,大多不會工作。所有三個文件將需要在相同的目錄中。也可以將兩個二進制文件打包成一個,並讓它們都運行。 – Dio 2013-07-22 08:22:28

-3

不,這是不可能「注入」一個exe到另一個。這個動作甚至沒有定義,因爲當你將對象注入到另一個對象時,你無法控制執行內部部件。

最接近的可能的exe文件是管道,在那裏你可以一個exe文件的輸出重定向到另外一個的輸入:

one.exe | two.exe 
+0

在Windows上,我確信one.exe會在two.exe啓動之前完全執行。不知道這是否是想要的。 – 2010-02-15 20:27:15

+3

-1。因爲將一個exe的輸出重定向到另一個的輸入與OP的意圖不同。非常不一樣。 – 2010-02-15 20:42:32

4

您可以創建自己的EXE文件,其中包含另外兩個EXE文件作爲嵌入式資源並提取並執行它們中的每一個。

請注意,如果將其提取到其他目錄,則嵌入的EXE可能無法正常工作。

1

將數據從1個文件複製到第三個 請記住eof的位置。 將二進制文件從第二個文件添加到第三個文件。 然後在eof值的結尾編號(int)中添加。 在第一個文件應該是一個代碼,它可以從文件末尾到文件末尾的整個文件複製到另一個文件。

並執行。

很簡單的方法來做到這一點。

3

從技術上講,可以嵌入一些其他的EXE文件在您的exe文件,如UPX加殼一些做。所以你應該可以用2個exes來做同樣的事情。

在類似Unix的時尚你的EXE可以叉,那麼第一個過程執行第一老可執行文件,新工藝執行第二exe文件,也許他們之間安裝管道之前。

但是,這顯然不是那麼容易做,很可能是一個無用的矯枉過正的需求。 你可能只需要一個小的.bat或.sh

3

我注意到你的「編程」限定詞,但萬一出的代碼的解決方案是無論你做什麼...接受

IExpress可以建立其執行兩個其他的EXE的EXE。您可以從命令行構建一個IExpress程序包。

SED文件:

[版]
類= Iexpress的
SEDVersion = 3
[菜單]
PackagePurpose = InstallApp
ShowInstallProgramWindow = 1
HideExtractAnimation = 1
UseLongFileName = 0
InsideCompressed = 0
CAB_FixedSize = 0
CAB_ResvCodeSigning = 0
RebootMode = N
InstallPrompt =%InstallPrompt%
DisplayLicense =%DisplayLicense%
FinishMessage =%FinishMessage%
的TargetName =%的TargetName%
的FriendlyName = %的FriendlyName%
AppLaunched =%AppLaunched%
PostInstallCmd =%PostInstallCmd%
AdminQuietInstCmd =%AdminQuietInstCmd%
UserQuietInstCmd =%UserQuietInstCmd%
SourceFiles = SourceFiles
[字符串]
InstallPrompt =
DisplayLicense =
FinishMessage =
的TargetName = C:\ combined.exe
的FriendlyName =實施例名稱
AppLaunched =運行.BAT
PostInstallCmd =
AdminQuietInstCmd =
UserQuietInstCmd =
FILE0 = 「FirstProgram.exe」
FILE1 = 「SecondProgram.exe」
FILE2 = 「的run.bat」
[SourceFiles]
SourceFiles0 = C:\程序\
[SourceFiles0]
%FILE0% =
%FILE1%=
%FILE2%=

run.bat文件:

FIRSTP〜1.EXE
SECOND〜1.EXE

當您運行combined.exe,firstProgram.exe將執行。完成後,將執行secondProgram.exe。如果您想讓firstProgram.exe和secondProgram.exe同時運行,可以通過更改BAT文件來完成。

1

這是我怎麼寫我的病毒C++ 系統(「類型virus.exe > > not_virus.exe」) ,但如果你是通過命令提示符下做這件事然後簡單地做到這一點。 類型virus.exe > > not_virus.exe 但我期待着一個方法可以讓我在前面加上它,而不是要求它首先轉到第一行追加那麼它的代碼複製到受害的可執行文件

相關問題