怎樣捆文件
㈠ 怎樣把2個文件捆綁成一個 非 exe的文件(最好是圖片)
問題不確切。不知道你想生成什麼結果,是生成一個還能看的圖片文件么?
如果是的話。直接 1.jpg/b 2.txt/a 3.jpg
3.jpg可以當正常的圖用。你用ultraedit之類打開就能看到最後附加了2.txt的文本內容。
㈡ 如何使用系統自帶命令捆綁文件
是 命令為iexpress
開始 運行 CMD回車 輸入iexpress回車 有幫助
IExpress是微軟為壓縮CAB文件及製作安裝程序所開發的小工具,其實應該算是MAKECAB的一個Shell。雖一直藏身於微軟的產品中,卻從未對它說明過,但不能否認是一款不錯的免費軟體。
功能:專用於製作各種 CAB 壓縮與自解壓縮包的工具。
只要在「開始 → 運行 」中輸入「iexpress.exe」點「確定」即可。
對於合成文件非常有用。
偽裝免殺的木馬一般的殺軟都不會報毒。
使用方法如下
大家知道 CAB 這種壓縮格式比 ZIP 的壓縮率要高,與 RAR 相當,而且是一種標準的壓縮格式,能夠被 WINZIP 等眾多壓縮軟體打開,但製作 CAB 自解壓文件的工具卻不多。其實好的工具就在我們的身邊,在 IE5.0 中文版中有一個隱藏的自解壓 CAB 製作工具——Iexpress,它就能夠把你的文件壓縮成一個自解壓的 CAB 壓縮包,而且生成的自解壓程序界面是全中文的。它在「Microsoft Internet Explorer 管理工具包 5」里,下面是獲得 Iexpress 的具體方法。 方法A:需在安裝 IE 管理工具包
(1)在 IE5 的安裝文件中找到「ieak5.exe」或「ieak5cd.exe」其中任何一個,用滑鼠雙擊運行它。
(2)安裝完成之後,打開 C:\WINDOWS\SYSTEM 文件夾,找到 iexpress.exe,它就是 Iexpress,為它創建一個快捷方式,以後運行快捷方式就可以了。 方法B:不安裝 IE 管理工具包
(1)與方法 A 中的第一步相同。
(2)當安裝程序要你選擇「安裝的目標文件夾」時,在 C:\WINDOWS\TEMP\IXP000.TMP 文件夾中找到下面三個文件:makecab.exe、iexpress.exe、wextract.exe。因為這個文件夾在安裝程序運行後會自動刪除,所以把這三個文件復制到另一個安全的文件夾中,以後運行 iexpress.exe 即可。這三個文件為:makecab.exe(CAB 文件製作工具)、iexpress.exe(CAB 自解壓文件製作向導)、wextract.exe(CAB 自解壓文件的「頭」文件)。
雖然 Iexpress 製作出的自解壓文件是中文界面,但 Iexpress 還是英文界面,下面以製作一個最簡單的自解壓CAB文件為例,介紹一下 Iexpress 的用法。 運行 iexpress.exe,出現 Iexpress Wizard(向導),然後依次按「下一步」進入各步驟;
(1)選擇默認選項「Create new Self Extraction Directive file」(建立新的自解壓文件);
(2)選擇「Extract file only」(僅解壓文件)單選鈕;
(3)輸入自解壓程序標題欄文字,比如「解壓 Iexpress」;
(4)選擇默認選項「No promtp」(解壓前不提示);
(5)選擇默認選項「Do not display a license」(不顯示許可協議),單擊「Add」按鈕,在彈出的「打開」對話框中選取需壓縮的文件;
(6)選擇默認選項「Default(recommended)」(按默認方式顯示程序窗口);
(7)選擇默認選項「No message」(完成後不顯示提示信息);輸入將生成的自解壓程序文件名,比如「C:\A.EXE」;
(8)選擇默認選項「Save Self Extraction Directive(SED)file」(保存此次配置);
(9)開始製作自解壓文件,依文件大小,製作過程可能需要幾秒至數分鍾不等,這期間會出現一個「makecab」的MS-DOS窗口顯示製作進度,在「makecab」MS-DOS窗口自動關閉後,單擊「完成」即可。 由於 Iexpress 是一個「向導」式的工具,如果選錯了或輸錯了,基本上其中的任何一步都可以通過單擊「上一步」來回到上一步,再作修改。只要熟悉了它的界面,操作並不復雜。
㈢ 怎麼將圖片和文件捆綁在一起
是什麼文件???
EXE??如果是那不行(木馬嗎?)
目前網路上流行的捆綁技術和方式主要有下面幾種情況:
◆多文件捆綁。
捆綁技術中最簡單的捆綁方式,也是最流行的捆綁技術實現方式之一。文件捆綁也就是將A.exe文件(正常文件)和B.exe文件(惡意代碼)捆綁成C.exe文件。當用戶點擊C.exe文件時,用戶看到的是A.exe文件的執行結果,而B.exe文件則在後台悄悄執行。一個Win32下正常的文件中包含以文件MZ開頭,DOS文件頭後面的PE頭以PE\0\0開頭。檢查是否被捆綁多文件,則可以通過UltraEdit類的工具打開目標文件搜索關鍵字MZ或者PE。如果找到兩個或者兩個以上,則表明此文件一定把捆綁了其它的文件。葉子將在後面的實例中介紹如何實現文件捆綁的操作過程。
◆資源融合捆綁。
了解Windows文件中PE結構的人都知道資源是EXE中的一個特殊的區段。這段區域可以用來包含EXE調用的資源信息等相關內容。而我們可以利用BeginUpdateResource 、UpdateResource、EndUpdateResource的API函數實現對資源內容的更新替換。編程人員只需先寫一個包裹捆綁文件的頭文件,文件中只需一段釋放資源的代碼。而捆綁器用的時候先將頭文件釋放出來,然後調用以上的三個API函數將待捆綁的文件更新到這個頭文件中即完成了捆綁技術的實現。
◆漏洞利用捆綁
目前比較流行的捆綁技術之一,利用word、excel、flash等一些應用產品中的安全漏洞,通過對漏洞的利用,然後調用惡意代碼進行執行。例如當一些研究人員發現word產品的安全漏洞後,黑客編寫漏洞利用程序,並把惡意代碼植入word的宿主文件中。當用戶打開惡意的word文件時,word漏洞中的程序通過Shellcode調用惡意代碼,並執行之。
除了這幾種捆綁技術之外,當然還有更多的其它捆綁技術的實現方式
工具環境:
WinRAR:解壓縮工具。
Quick Batch File Compiler:快速批量文件編譯程序
File1.exe(hfs2.exe):正常文件
File2.exe(RCBF_03031406.exe):木馬
使用WinRAR程序和QBFC程序實現木馬捆綁過程:
◆運行Quick Batch File Compiler,輸入hfs2.exe,回車,再輸入RCBF_03031406.exe,如圖所示:
◆點擊「Project」->「Options」,設置「Ghost Application」
◆點擊「Build」,保存文件為「binder.exe」
◆創建WinRAR自解壓文件,包含「binder.exe」、「hfs2.exe」、「RCBF_03031406.exe」文件。選擇這三個文件,點擊「add to archive」。
㈣ 如何綁定文件
將多個文件合並成一個最終可執行文件,運行這個最終文件時,就相當於運行了合並前的多個文件。這種程序在木馬程序合並中會經常用到,你想知道它是怎麼用程序實現的么?下面我就用我用VC6.0做的一個文件捆綁器的例子代碼來告訴你,程序運行後界面如下:
基本組成思想:其實,其中的構成思想非常簡單。建立一個新的二進制文件,先寫入你的捆綁程序的數據和其文件長度,再寫入你要捆綁的第一個文件的數據和其文件長度,後再直接寫入你要捆綁的第二個文件的數據和文件長度……,最後就可直接寫入你要捆綁的最後一個文件的數據(不需其文件長度)。最終文件被執行時,也就是將上面的方法思想倒過來即可。(下面實例僅告訴你如何實現二個文件的捆綁,至於多個文件的捆綁,讀者只需略加改動既可,詳情請細看下載後的實例代碼。)
下面我來講講如何具體將其來實現:
1、捆綁多個文件為一個可執行程序
先得到自身捆綁程序的文件長度和第一個要捆綁文件的文件長度,枚舉第一個要捆綁文件有無圖標,有的話就用它做為最終生成文件的圖標,否則用自身捆綁程序所帶默認圖標做最終生成文件的圖標。在新建二進制文件中寫入自身捆綁程序的數據和其文件長度,再寫入第一個要捆綁文件的數據及其文件長度,最後直接寫入第二個文件的數據既可。
捆綁涵數代碼實現如下:
//綁定多個文件為一個可執行文件
bool CBindFileDlg::Bind_Files()
{
FILE* myself; //自身文件
FILE* out; //最終合成文件
FILE* in; //待綁定文件
int bytesin;
int totalbytes = 0;
struct _stat ST;
unsigned int finder = 0x12345678;
unsigned int i, k;
int l=1; //狀態顯示
char buff[20]; //狀態顯示
his_name = strFirstFilePath; //第一個綁定的文件名
_stat(my_name, &ST);
modify_data.my_length = ST.st_size;
if (modify_data.my_length == 0)
{
MessageBox("綁定文件中,自身文件長度為零時出錯!","錯誤");
return false;
}
buf = (BYTE *)malloc(modify_data.my_length);
if (buf == NULL)
{
MessageBox("綁定文件中,分配自身文件長度時出錯!","錯誤");
return false;
}
myself = fopen(my_name, "rb"); //打開自身文件
if (myself == NULL)
{
free(buf);
MessageBox("綁定文件中,打開自身文件時出錯!","錯誤");
return false;
}
bytesin = fread(buf, 1, modify_data.my_length, myself);
fclose(myself);
if (bytesin != modify_data.my_length)
{
free(buf);
MessageBox("綁定文件中,不能完全讀取自身文件內容時出錯!","錯誤");
return false;
}
for (i = 0; i < modify_data.my_length - sizeof(finder); i += sizeof(finder))
{
for (k = 0; k < sizeof(finder); k++)
{
if (buf[i+k] != ((BYTE*)&finder)[k])
break;
}
if (k == sizeof(finder)) //定位並保存自身數據文件大小
{
memcpy(buf+ i, &modify_data, sizeof(modify_data));
break;
}
}
if (i >= modify_data.my_length - sizeof(finder))
{
free(buf);
MessageBox("綁定文件中,不能定位自身文件時出錯!","錯誤");
return false;
}
if (_stat(strFirstFilePath, &ST) != 0 || ST.st_size == 0)
{
free(buf);
MessageBox("綁定文件中,讀取第一個要綁定文件時出錯!","錯誤");
return false;
}
list_my_icons();
out = fopen(strFinalFilePath, "wb"); //創建最終合成文件
if (out == NULL)
{
free(buf);
MessageBox("綁定文件中,創建綁定後生成的合成文件時出錯!","錯誤");
return false;
}
totalbytes += fwrite(buf, 1, bytesin, out);
in = fopen(strFirstFilePath, "rb"); //打開第一個要綁定的文件
if (in == NULL)
{
free(buf);
MessageBox("綁定文件中,打開第一個要綁定文件時出錯!","錯誤");
return false;
}
//寫入第一個要綁定文件的長度到合成文件中
totalbytes += fwrite(&ST.st_size, 1, sizeof(ST.st_size), out);
//寫入最終分解後文件執行方式的標志位(同步或非同步執行)
UpdateData(TRUE); //傳控制項值到變數m_Sync中
totalbytes += fwrite(&m_Sync, 1, sizeof(int), out);
while (bytesin = fread(buf, 1, modify_data.my_length, in))
{
totalbytes += fwrite(buf, 1, bytesin, out);
}
fclose(in); //關閉第一個綁定文件句柄
//設置進度條顯示
m_Progress.SetRange(0,500);
for (int m = 0; m < 500; m++)
m_Progress.SetPos(m);
m_Parts = _ltoa(l, buff, 10);
m_Parts += _T("個文件已綁定");
UpdateData(FALSE);
l++;
in = fopen(strSecondFilePath, "rb"); //打開第二個要綁定的文件
if (in == NULL)
{
free(buf);
MessageBox("綁定文件中,打開第二個要綁定文件時出錯!","錯誤");
return false;
}
while (bytesin = fread(buf, 1, modify_data.my_length, in))
{
totalbytes += fwrite(buf, 1, bytesin, out);
}
//設置進度條顯示
m_Progress.SetRange(0,500);
for (int n = 0; n < 500; n++)
m_Progress.SetPos(n);
m_Parts = _ltoa(l, buff, 10);
m_Parts += _T("個文件已綁定");
UpdateData(FALSE);
l++;
fclose(in); //關閉第二個綁定文件句柄
fclose(out); //關閉最終合成文件句柄
free(buf); //釋放緩沖區
return true;
}
2、釋放最終合成文件並同時運行它們。
打開自身文件,從中得到自身捆綁程序的文件長度,便可將文件指針定位到第一個被捆綁文件的位置,讀取其文件長度和其數據,將其讀出數據寫入第一個新建文件中。同樣,通過已讀取的自身捆綁程序文件長度和第一個被捆綁文件的文件長度加上其保存這兩個文件長度值的位元組數,既可准確定位第二個被捆綁文件的位置,讀取其數據,寫入到第二個新建文件中。同時,運行這兩個文件,最後再刪除這兩個文件既可。
釋放最終合成文件的代碼具體實現如下:
//分解已合並的文件,同時運行它們
void CBindFileDlg::Unbind()
{
FILE* myself; //自身文件
FILE* out; //分解後文件
int bytesin;
int totalbytes = 0;
char temp_exe1[] = "temp1.exe"; //分解後的綁定文件名一
char temp_exe2[] = "temp2.exe"; //分解後的綁定文件名二
int SyncFlag; //文件最終執行標志
buf = (BYTE*)malloc(modify_data.my_length);
myself = fopen(my_name, "rb"); //打開最終合成文件
if (myself == NULL)
{
free(buf);
MessageBox("分離文件中,打開自身文件時出錯!","錯誤");
return;
}
out = fopen(temp_exe1, "wb"); //創建第一個綁定的文件
if (out == NULL)
{
free(buf);
MessageBox("分離文件中,創建第一個被綁定文件時出錯!","錯誤");
return;
}
//將文件指針定位到捆綁器程序長度尾部
fseek(myself, modify_data.my_length, SEEK_SET);
//讀取第一個綁定文件的長度
if (fread(&prog1_length, sizeof(prog1_length), 1, myself) == 0)
{
free(buf);
MessageBox("分離文件中,讀取第一個被綁定文件長度時出錯!","錯誤");
return;
}
//讀取最終文件執行方式(同步或非同步執行)
if (fread(&SyncFlag, sizeof(int), 1, myself) == 0)
{
free(buf);
MessageBox("分離文件中,讀取第一個被綁定文件長度時出錯!","錯誤");
return;
}
//讀取第一個文件內容並寫入
while (bytesin = fread(buf, 1, sizeof(buf), myself))
{
if (totalbytes + bytesin > prog1_length)
bytesin = prog1_length - totalbytes;
totalbytes += fwrite(buf, 1, bytesin, out);
}
fclose(out); //關閉第一個綁定文件句柄
#ifdef DEBUG_PRINT
fprintf(stderr, "已復制 %d 位元組!\n", totalbytes);
#endif DEBUG_PRINT
totalbytes = 0;
out = fopen(temp_exe2, "wb"); //創建第二個綁定的文件
if (out == NULL)
{
free(buf);
MessageBox("分離文件中,創建第二個被綁定文件時出錯!","錯誤");
return;
}
//將文件指針定位到最終合成文件中的第二個綁定文件頭部, 偏移量 ==
//(捆綁器自身文件長度+保存第一個綁定文件長度所佔位元組數+保存最終文件執行標志所佔位元組數+第一個綁定文件長度)
fseek(myself, modify_data.my_length + sizeof(modify_data.my_length) + sizeof(int) + prog1_length, SEEK_SET);
//讀取第二個綁定文件內容並寫入
while (bytesin = fread(buf, 1, sizeof(buf), myself))
{
totalbytes += fwrite(buf, 1, bytesin, out);
}
fclose(out); //關閉第二個綁定文件句柄
#ifdef DEBUG_PRINT
fprintf(stderr, "已復制 %d 位元組\n", totalbytes);
#endif DEBUG_PRINT
fclose(myself); //關閉最終合成文件句柄
if (totalbytes == 0)
{
free(buf);
MessageBox("分離文件中,在自身文件中沒有被分離的對象!","錯誤");
return;
}
free(buf); //釋放緩沖區
if(!SyncFlag) //0 -- 同步執行,1 -- 非同步執行
{
//置為分解後,為同步執行方式
Create_Process(temp_exe1, false);
Create_Process(temp_exe2, false);
}
else
{
//置為分解後,為非同步執行方式
Create_Process(temp_exe1, true);
Create_Process(temp_exe2, true);
}
}
㈤ 怎樣捆綁一個文件
找3個文件,一個是主文件,一個是要捆綁上去的文件,然後找一個文件捆綁器,按操作執行就可以了
㈥ 如何捆綁EXE文件
用編譯軟體重新處理圖片.
㈦ 怎樣捆綁文件
是把文件壓縮嗎? 選中文件後點右鍵,發現"將文件壓縮到....."那個符號
㈧ 怎麼捆綁一個應用東西在一個文件里
[autorun]
OPEN=autorun.exe
在文件夾里新建文本文檔,改名為autorun.inf
然後打開在裡面建入
[autorun]
OPEN=(在這里填入想要打開的文件,也就是將autorun.exe換為想要打開的文件名)
㈨ 怎麼捆綁文件
把要捆綁的文件放在一個文件夾里,然後把該文件夾壓縮
㈩ 如何捆綁文件
用WINRAR 創建 自解壓 文件 有EXE圖標 修改工具修改下圖標OK了!