複製鏈接
請複製以下鏈接發送給好友

捆綁

(計算機術語)

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

捆綁文件末尾

這種原理很簡單,也是用的最多的方式,就是將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中使用