捆綁[計算機術語]

捆綁[計算機術語]

捆綁是指將兩個及以上執行檔重新組裝成一個檔案的過程,這樣就可以實現運行執行檔後同時運行其他多個執行檔。 說白點其實就是把多個執行檔“組合”成一個執行檔,而這個執行檔還必須有“分解”能力,這樣才能把 EXE分離出來,使之正常運行。

基本信息

捆綁

捆綁是指將兩個及以上執行檔重新組裝成一個檔案的過程,這樣就可以實現運行執行檔後同時運行其他多個執行檔。 說白點其實就是把多個執行檔“組合”成一個執行檔,而這個執行檔還必須有“分解”能力,這樣才能把 EXE分離出來,使之正常運行。而“組合”也可是多種形式的,下面為幾種捆綁方式:

檔案末尾

這種原理很簡單,也是用的最多的方式,就是將B.EXE附加到A.EXE末尾,這樣當A.EXE被執行的時候而B.EXE也跟著執行了。這種捆綁器的代碼滿網路都是,沒什麼技術含量。

資源捆綁

這是以資源的形式組合到一個EXE檔案中的方式。資源是EXE中一個特殊區段,可以包含EXE需要不需要的用到的任何一切東西。這種方法是如何利用這一點的?只需要用的BeginUpdateResource、UpdateResource、EndUpdateResource這三個API函式就可以了,因為這三個函式是用於更新替換用的。只需要寫一個包裹檔案的頭檔案header.exe,頭檔案中只需要一段釋放資源的代碼。而捆綁器用的時候先將頭釋放出來,然後根據上面三個函式將待捆綁的更新到這個頭檔案幾完成捆綁。類似原理廣泛用於木馬生成器中。

編譯器捆綁

這種方法相當陰險,是將要捆綁的檔案轉換成16進制保存到一個數組中。像這樣的語句:

muma:array[0..9128] of Byte=($4D,$5A.$50….$00); 需要的時候再用API 函式CreateFile和WriteFile便可將檔案還原硬碟,這樣經過編譯器連線器一弄,檢測到可能性就很小了。

函式

bind函式用於將套接字綁定到一個已知的地址上。

頭檔案

#include <sys/socket.h>

語法

int bind(SOCKET socket, const struct sockaddr *address,

socklen_t address_len);

參數說明

socket:是一個套接字。

address:是一個sockaddr結構指針,該結構中包含了要結合的地址和連線埠號。

address_len:確定address緩衝區的長度。

返回值

如果函式執行成功,返回值為0,否則為SOCKET_ERROR。

在定義一個套接字後,需要調用bind函式為其指定本機地址、協定和連線埠號。

下面的代碼創建一個套接字s,將其綁定到3010連線埠上。

int port = 3010;

SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);

sockaddr_in addr;

addr.sin_family = AF_INET; //內部網路協定TCP\UDP等

addr.sin_port = htons(port); //連線埠號

addr.sin_addr.s_addr = htonl(INADDR_ANY);

if (SOCKET_ERROR = bind(s,(LPSOCKADDR)&addr,sizeof(addr))==0)

{MessageBox("失敗!");}

Jquery中使用

相關詞條

相關搜尋

熱門詞條

聯絡我們