информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft Authenticator прекращает... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Вопросик есть 12.05.03 11:09  Число просмотров: 1213
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> $iaddr = inet_aton($host);
> for ($i = 0; $i <= $#ports; $i++)
> {
> $paddr = sockaddr_in($ports[$i], $iaddr);
> $connect = connect(SOCK, $paddr); if ($connect)

Перл автомтом переводит численные значения в сетевой вид ?
Это собственно вопрос.
Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта. Иначе ты пытаешся законнестится непонятно к чему.

Теперь по поводу сервисов. Самый тупой и простой способ - список ;) Ты знаешь что на таком то порту такой то сервис... хехе... в большинстве случаев прокатит. Если нужна большая точность - попытайся с ними "поговорить" (и послушать ответ). Других методов нет.

Кстати твой метод сканирования конечно самый простой, но обладает как минимум двумя хорошими недостатками:
1. Очень медленный.
2. Ты светишся как неоновая лампочка в ночи.
Похорошему, сканер надо писать на raw сокетах, генерируя "хитрые" пакеты вручную. О таких методах есть много статей, если память не изменяет, то и на этом сайте.
<programming>
[Perl] Сканер портов 12.05.03 10:07  
Автор: loki Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Здравствуйте! У меня возникли проблемы, связанные с разработкой сканера портов на perl (исходный код ниже). Итак, проблема первая: сканер не находит все открытые на компьютере порты. Из трех открытых tcp-портов (smtp - 25, sunrpc - 111, X11 - 6000) он находит только один (smtp - 25). nmap (простым сканированием) нашел все три. Почему? Проблема вторая: не проблема, а вопрос. Как сделать так, чтобы мой сканер мог определять какой сервис находится на данном порту? Это были все вопросы. Принцип работы сканера таков: пользователь вводит имя хоста и порты для сканирования. Скрипт обрабатывает данные и начинает конектиться на все указанные порты. Есть коннект - порт открыт, нет - закрыт. Исходник:
#!/usr/bin/perl -w
use Socket;
print "Enter Host name:\n";
$host = <>;
print "Enter ports for TCP-scanning:\n";
$port = <>;
@ports = split(" ", $port);
socket (SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
for ($i = 0; $i <= $#ports; $i++)
{
$paddr = sockaddr_in($ports[$i], $iaddr);
$connect = connect(SOCK, $paddr); if ($connect)
{$ports[$i] = "$ports[$i] - open\n"}
else
{$ports[$i] = "$ports[$i] - close\n"
}
}
for ($i = 0; $i <= $#ports; $i++) { print "$ports[$i]\n"; }
print "Press Any Key To Exit";
<>;
Вопросик есть 12.05.03 11:09  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> $iaddr = inet_aton($host);
> for ($i = 0; $i <= $#ports; $i++)
> {
> $paddr = sockaddr_in($ports[$i], $iaddr);
> $connect = connect(SOCK, $paddr); if ($connect)

Перл автомтом переводит численные значения в сетевой вид ?
Это собственно вопрос.
Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта. Иначе ты пытаешся законнестится непонятно к чему.

Теперь по поводу сервисов. Самый тупой и простой способ - список ;) Ты знаешь что на таком то порту такой то сервис... хехе... в большинстве случаев прокатит. Если нужна большая точность - попытайся с ними "поговорить" (и послушать ответ). Других методов нет.

Кстати твой метод сканирования конечно самый простой, но обладает как минимум двумя хорошими недостатками:
1. Очень медленный.
2. Ты светишся как неоновая лампочка в ночи.
Похорошему, сканер надо писать на raw сокетах, генерируя "хитрые" пакеты вручную. О таких методах есть много статей, если память не изменяет, то и на этом сайте.
[Perl] Новые вопросы 12.05.03 17:26  
Автор: loki Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответы! Тут у меня правда новые вопросы возникли:
>Перл автомтом переводит численные значения в сетевой вид ?
Вообще-то я думал, что да=)) Это значит, что мой скрипт не

работает?=((
>Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта.
Это вот так что ли:

$iaddr = inet_aton($host);
for ($i = 0; $i <= $#ports; $i++)
{
$paddr = sockaddr_in(htons($ports[$i]), $iaddr);
$connect = connect(SOCK, $paddr);
if ($connect)

>Кстати твой метод сканирования конечно самый простой, но

>обладает как минимум двумя хорошими недостатками:
>1. Очень медленный.
>2. Ты светишся как неоновая лампочка в ночи.
Не совсем понимаю термин "шороший недостаток"=)) и тем не менее
можно ли этих недостатков избежать не используя raw сокеты? Если

да, то как?
И ещё вопрос: кроме указанной ошибки вы не заметили других багов,

недочетов, лишних строк кода и т.п?
Если вас не затруднит, ответьте, буду вам очень признателен!!!
з.ы.
>О таких методах есть много статей, если память не изменяет, то и

>на этом сайте.
На этом сайте не нашел!!! У вас линка случайно не найдется?
[Perl] Новые вопросы 14.05.03 23:09  
Автор: izlam Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если уж юзаешь Socket, perldoc по нему сильно поможет :)

> >1. Очень медленный.
> >2. Ты светишся как неоновая лампочка в ночи.
> Не совсем понимаю термин "шороший недостаток"=)) и тем не
> менее
> можно ли этих недостатков избежать не используя raw сокеты?
raw сокеты помогут в случае с 2. В 1-м же случае видимо имелся ввиду неблокирующий IO, или fork-и, читай perldoc -f select perldoc -f fork

> Если да, то как?
Гляди perldoc Net::RawIP (только поставь его сначала)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach