Сканер портов? ЛЕГКО!

Horrific (smirnandr@mail.ru)

Спецвыпуск Хакер, номер #004, стр. 004-084-1

Если Delphi уже запустился, то давай приступим к оформлению формы. Последовательно выполняй следующие действия: поставь на форму Panel из закладки "Standard" и измени его свойство Align на "alTop". Как менять свойства, я уже рассказывал в других статьях этого номера. Поэтому теперь я буду просто говорить, какие свойства изменить, а ты будешь выделять объект и искать такую строку в ObjectInspector (и, конечно же, ставить то, что я скажу :0) ).

Теперь поставь на форму RichEdit из закладки "Win32" и измени его свойство Align на "alClient". У тебя должно получиться нечто похожее на рисунок 1.

Теперь установи на Pantl1 три Label и один Edit из закладки "Standard". У всех Label-ов измени свойство "Caption" на:

Label1 - "Host address" (IP адрес жертвы).

Label2 - "First port" (первый порт).

Label3 - "Last port" (последний порт).

Можешь написать это на русском, но я предпочитаю такие вещи видеть на английском (да простит меня редактор :)).

Теперь установи на Pantl1 два компонента SpinEdit из закладки "Samples" и кнопку из закладки "Standard".

Постарайся все это разместить так, как на рисунке 2, для этого нужно немного поработать мышкой, перетаскивая объекты по панели Panel1.

Все, с оформлением покончено. Теперь переходим к программированию. Много мы писать не будем, нам понадобится только одна процедура. Дважды кликни по Button1, и она у тебя перед глазами появится. Дополни ее этим текстом:

procedure TScanPortForm.Button1Click(Sender: TObject);

var

index:Integer;

initdata:WSADATA;

ws:TSOCKET;

addrport:TSockAddrIn;

begin

RichEdit1.Lines.Clear;

WSAStartup($101, InitData);

socket(PF_INET, SOCK_STREAM,0);

addrport.sin_family := PF_INET;

addrport.sin_addr.s_addr := inet_addr(PChar(Edit1.Text));

index:=SpinEdit1.Value;

while index < SpinEdit1.Value do

begin

addrport.sin_port := htons(index);

if connect(ws,addrport,sizeof(addrport))=0 then

RichEdit1.Lines.Add('Port '+IntToStr(index)+' открыт');

Inc(index);

end;

RichEdit1.Lines.Add(' Готово');

closesocket(ws);

end;

На первый взгляд очень много. Но ничего страшного здесь нет. Сейчас я все аккуратно распишу. Давай рассмотрим каждую строчку в отдельности:

RichEdit1.Lines.Clear - очищает RichEdit1.

WSAStartup($101, InitData); - запускаем библиотеку winsock, которая используется для работы с сокетами. Я здесь работаю с сокетами через API, а не через ClientSocket, как в статье про троянов. Это сделано для увеличения скорости сканирования. Ты же не хочешь, чтобы тебя выловила наша доблестная милиция.

В качестве первого параметра ($101) указывается версия необходимого драйвера winsock.dll. Второй параметр нами не используется, поэтому там пустая переменная типа WSADATA.

socket(PF_INET, SOCK_STREAM,0) - открывает сеанс работы с сокетами. Кстати, сокет - это по-нашему гнездо. AF_INET говорит, что меня интересует один из протоколов TCP или UTP. SOCK_STREAM - указывает, что мне нужен протокол из семейства TCP. Третий параметр 0 означает TCP.

Дальше я заполняю структуру addrport, в которой я должен указать адрес жертвы и протокол.

Содержание  Вперед на стр. 004-084-2

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001