| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Сканер портов? ЛЕГКО!
Horrific (smirnandr@mail.ru) Если Delphi уже запустился, то давай приступим к оформлению формы. Последовательно выполняй следующие действия: поставь на форму Panel из закладки "Standard" и измени его свойство Align на "alTop". Как менять свойства, я уже рассказывал в других статьях этого номера. Поэтому теперь я буду просто говорить, какие свойства изменить, а ты будешь выделять объект и искать такую строку в ObjectInspector (и, конечно же, ставить то, что я скажу :0) ). Теперь поставь на форму RichEdit из закладки "Win32" и измени его свойство Align на "alClient". Теперь установи на Pantl1 три Label и один Edit из закладки "Standard". У всех Label-ов измени свойство "Caption" на: Label1 - "Host address" (IP адрес жертвы). Label2 - "First port" (первый порт). Label3 - "Last port" (последний порт). Можешь написать это на русском, но я предпочитаю такие вещи видеть на английском (да простит меня редактор :)). Теперь установи на Pantl1 два компонента SpinEdit из закладки "Samples" и кнопку из закладки "Standard". Все, с оформлением покончено. Теперь переходим к программированию. Много мы писать не будем, нам понадобится только одна процедура. Дважды кликни по 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 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, в которой я должен указать адрес жертвы и протокол. addrport.sin_family := PF_INET - указываю протокол PF_INET. addrport.sin_addr.s_addr := inet_addr(PChar(Edit1.Text))- устанавливаю адрес жертвы, введенный в Edit1. index:=SpinEdit1.Value - запоминаю порт, с которого нужно начать сканирование. Дальше идет цикл. Я его распишу на русском, а ты разберешься методом сравнения с кодом: Пока текущий < конечный порт делать Начать цикл установить текущий порт Если коннект прошел удачно, то В RichEdit1 добавляю строку: "Port такой-то открыт" Следующий порт сделать текущим Конец цикла После этого я вывожу сообщение RichEdit1.Lines.Add('Готово') в RichEdit, что сканирование закончено. В самом конце я закрываю порт с помощью closesocket. Перед запуском перейди в начало исходного кода и добавь слово "winsock" в раздел "uses". Такие вещи мы тоже уже делали в других статьях этого номера, поэтому у тебя не должно возникнуть никаких проблем. Жми "F9", и твой сканер портов взлетит в бой. Больше не буду напрягать твои мозги, ты и так нахватал слишком много инфы :). Дополнительную информацию о сокетах ищи в разделе статей по дельфи. Там все очень хорошо расписано, и если ты чего-то не понял, то там догонишь. Удачных тебе сканов!!! Рубрика: DELPHI и ХАКЕР
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|