ASMportscan

所属分类:网络编程
开发工具:Asm
文件大小:37KB
下载次数:315
上传日期:2005-01-10 12:37:23
上 传 者二点
说明:  用ASM写的端口扫描工具!精悍!
(write port scanning tool! Skinned!)

文件列表:
Dialog.rc (3023, 2004-05-13)
dialog.RES (872, 2004-05-13)
PortScan.asm (19554, 2004-09-27)
PortScan.EXE (12288, 2004-09-27)
ProcName.inc (2288, 2004-09-23)
WINDOWS.INC (91511, 2004-09-23)
winsock2.inc (12199, 2004-05-13)

PortScan ========================== Описание для пользователя. Рекомендуется прочесть эти несколько абзацев, чтобы запустив программу, не кричать: "Что за фигня, как это работает ?!?". Программа сделана по образу и подобию "7th Sphere PortScan 1.1" Одновременно можно сканировать порты только на одном хосте. В поле ввода "Host" можно указать либо IP-адрес (например, 1.2.3.4), либо имя хоста (например, www.wasm.ru). Если указано несуществующее имя, то при попытке начать сканирование появится сообщение об ошибке: "Unable to resolve hostname". В двух полях Ports укажите номера начального и конечного портов (т.е. диапазон сканирования). Сканирование производится в режиме non-blocking. Это означает, что сканер делает запросы на подключение одновременно к нескольким портам, а потом ждет результата. При нажатии кнопки Start начинается перебор портов. Интервал между двумя последовательными попытками можно задать в поле Delay. Интервал указывается в милисекундах. Можно указать ноль милисекунд - в этом случае запросы будут производиться с максимальной скоростью, на которую способен Ваш компьютер. В поле Port (справа) автоматически отображается номер порта, к которому в данный момент отправляется запрос. Ответ на попытку подкючения к порту прийдет не сразу. Чтобы пользователь мог ориентироваться, сколько ему еще ждать завершения перебора, в программе есть счетчик "открытых" попыток. Когда сделан запрос к очередному порту, счетчик увеличивается на единицу. Когда приходит ответ на запрос какого-либо порта, счетчик уменьшается на единицу. Текущее значение счетчика отображается в поле "Open". Если во время сканирования нажать Stop, то сканер прекратит делать попытки соединения, однако дождется результата всех попыток, которые он успел сделать на данный момент. Если же необходимо немедленно прекратить перебор и не дожидаться результата уже сделанных попыток, нажмите Reset. Если соединение с каким-либо портом установлено (т.е. порт открыт), информация об этом выводится в нижнем окошке. Например: 139: CONNECTED (nbsession) [20***] В скобках указывается название сервиса, соответствующее данному номеру порта. В квадратных скобках указывается (на всякий случай) номер порта на локальном хосте, через который было установлено данное соединение. По окончании перебора выводится статистика сканирования. Например: -------- Statistics -------- Ready 187 of 204 attempts Connected: 1 Refused: 186 ================= 204 - это количество сделанных попыток. 187 - это количество полученных ответов. Если Вы не нажимали Reset, эти числа должны совпадать. Далее приведено количество полученных ответов для каждого из возможных вариантов ответов. Возможны следующие ответы на попытку соединения: Connected - соединение установлено; Refused - удаленный хост активно отверг попытку соединения (это стандартное поведение для закрытого порта); Timed out - истекло время ожидания ответа и не было получено ни connected, ни refused. Это может означать, что сетевое ПО на удаленном хосте работает неправильно, либо удаленный хост недоступен. (Время ожидания прописано в реализации WinSock и изменить его, по-видимому, нельзя.) Other - какая-то другая ошибка ;-) Наконец, галочка "Get remote hostname". Это дополнительная фишка. Если Вы указали IP-адрес удаленного хоста и отметили эту галочку, то перед началом сканирования программа попытается узнать доменное имя хоста. Однако это может занять некоторое время, так что сами решайте, нужно ли Вам это. ---------------- Лирическое отступление. Однажды мне приспичило найти в интернете исходник сканера портов. После долгих поисков я наконец-то наткнулся на махонькую программку, написанную на Delphi. Там была всего одна кнопка, обработчик нажатия которой выглядел так: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; ipstr: String; begin ipstr:='127.0.0.1'; if not InputQuery ('Atention', 'Enter IP Address', ipstr) then exit; for i:= StrToInt (Edit1.Text) to StrToInt (Edit2.Text) do begin TcpClient1.RemotePort:= IntToStr(i); TcpClient1.Open; if TcpClient1.Connected then Memo1.Lines.Add (IntToStr(i)+'open'); TcpClient1.Close; end; end; Поистине, все гениальное просто ! Не спорю, это будет работать, но представьте, сколько времени заняло бы сканирование всех 65535 портов ! Вобщем, пришлось оставить попытки найти исходный текст нормального сканера портов. И пришлось написать его самому ;-)) ---------------- Ну вот и все. Если Вам в программе что-то не нравится - исходник перед Вами, действуйте ! Технические сведения. ===================== Используемый компилятор - TURBO ASSEMBLER 5.0 Батничек: call tasm32 /i"C:\...<путь к папке Tasm>...\Tasm\Include" PortScan call tlink32 PortScan,,,,,dialog -aa Файл dialog.rc и скомпилированный dialog.res прилагаются. Файлы определений procname.inc, winsock2.inc прилагаются. (winsock2.inc - не полный; туда включено только то, что необходимо в данной программе.) Также прилагается windows.inc. Возможно, это не самый лучший windows.inc в мире ;-)) , однако с ним прога гарантированно скомпилируется (по крайней мере, у меня все работает ;-)) На всякий случай. Файл WS2_32.lib можно сгенерировать, выполнив строку implib WS2_32.lib WS2_32.dll Библиотека WS2_32.dll находится в папке WINDOWS\SYSTEM. Файл implib.exe входит в состав TASM 5.0. =================== TGZ, The Great Zopuh, great_zopuh@mail.mtu.ru (спама много приходит, больше не надо ! ;-)) Отправлено на сайт wasm.ru 30.09.2004

近期下载者

相关文件


收藏者