ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Пишем сканер открытых портов своими руками.
  #1  
Старый 29.12.2006, 11:19
Аватар для Ad
Ad
Познающий
Регистрация: 15.07.2006
Сообщений: 48
Провел на форуме:
126131

Репутация: 26
Arrow Пишем сканер открытых портов своими руками.

Всем привет. Давненько я статьи не писал. Сегодня мы разберем, как сканировать свою машину на открытые порты.
Вам потребуется: Visual Basic 6.0, прямые руки.
Так открывай Visual Basic (VB) или он у тебя открыт.
Далее добавляем на форму компонент Winsock. Добавили? Идем дальше. Добавляем четыре TextBox’a на форму, а так же кнопку (command), и StatusBar – в нем будет отображаться, что данная программа делает на определенном этапе. Вот уже визуально программа готова. Выглядит примерно так:

Дальше нажимаем на форму два раза (УДАЛЯЕМ ВСЕ С ПРОГРАММНОГО КОДА) и вставляем этот код, кстати я его пояснил максимально:
Private Sub Form_Load()
End Sub

Private Sub FoundPorts_Change()
FoundPorts.SelStart = Len(FoundPorts.Text) ‘длина строки порта
End Sub

Private Function AddPort(Port As Integer)
FoundPorts.Text = FoundPorts.Text & "[Connected] Port " & Port & vbCrLf –‘это выводимый, текуший текст
End Function

Private Sub Sock_Connect(Index As Integer)
AddPort (Sock(Index).RemotePort) – ‘если порт открыт, то эта строка нам показывает, что порт открыт!!!
Sock(Index).Close ‘ Закрываем сокет
End Sub

Private Sub Sock_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) ‘ показываем, что сокет закрыт, но данные должны остаться целыми в интерфейсе
Sock(Index).Close ‘ закрываем сокет
End Sub

Вот и все. Да кстати по Default’у можете поставить LocalHost и тогда программа должна сканировать вашу машину на открытые порты. Да кстати важная деталь у WinSock’a Index должен быть равен нулю!!!
Всех с наступающим новым годом!
(c) d1n 2006
 
Ответить с цитированием

  #2  
Старый 29.12.2006, 17:38
Аватар для KSURi
KSURi
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме:
1985206

Репутация: 963


По умолчанию

гениально
PS:
Код:
perl -MIO::Socket -e "for(1..65535){if($sock=IO::Socket->new(PeerAddr=>"localhost",PeerPort=>$_)){print $_.' '}}"

Последний раз редактировалось KSURi; 31.12.2006 в 21:26..
 
Ответить с цитированием

  #3  
Старый 31.12.2006, 19:21
Аватар для Gh0s7
Gh0s7
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме:
1045663

Репутация: 864
По умолчанию

Мда. К мега превад 1337 сканеру ксуря +1) Перл рулед.
 
Ответить с цитированием

  #4  
Старый 31.12.2006, 19:58
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Боян в принципе.. ну ладно, в честь нг пару плюсиков дам.

KSURi, ыыы )

Код:
main()
{
int fd;
struct sockaddr_in sa;
int i;

#ifndef _WIN32
#define closesocket close
WSADATA w; WSAStartup(0x202, &w);
#endif

memset(&sa.sin_zero, 0, 8);
sa.sin_addr.s_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;

for(i=1;i<65536;i++)
{
  fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  sa.sin_port = htons(i);
  if(connect(fd, (struct sockaddr*)&sa, sizeof(sa)) != -1)
    printf("%d\n", i);
  closesocket(i);
}
}

Последний раз редактировалось _Great_; 31.12.2006 в 20:03..
 
Ответить с цитированием

  #5  
Старый 31.12.2006, 21:32
Аватар для Gh0s7
Gh0s7
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме:
1045663

Репутация: 864
По умолчанию

Цитата:
Сообщение от _Great_  
Боян в принципе.. ну ладно, в честь нг пару плюсиков дам.

KSURi, ыыы )

Код:
main()
{
int fd;
struct sockaddr_in sa;
int i;

#ifndef _WIN32
#define closesocket close
WSADATA w; WSAStartup(0x202, &w);
#endif

memset(&sa.sin_zero, 0, 8);
sa.sin_addr.s_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;

for(i=1;i<65536;i++)
{
  fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  sa.sin_port = htons(i);
  if(connect(fd, (struct sockaddr*)&sa, sizeof(sa)) != -1)
    printf("%d\n", i);
  closesocket(i);
}
}

ждем сканера портов на кубасике, питоне и аштэмел
 
Ответить с цитированием

  #6  
Старый 01.01.2007, 17:00
Аватар для Ad
Ad
Познающий
Регистрация: 15.07.2006
Сообщений: 48
Провел на форуме:
126131

Репутация: 26
По умолчанию

Еще могу на php выложить
 
Ответить с цитированием

  #7  
Старый 13.01.2007, 12:49
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

пошел делать сканер портов на Photoshop
=))
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #8  
Старый 13.01.2007, 16:34
Аватар для Dude03
Dude03
Познающий
Регистрация: 05.10.2006
Сообщений: 56
Провел на форуме:
227465

Репутация: 42
По умолчанию

Цитата:
Сообщение от _Great_  
Боян в принципе.. ну ладно, в честь нг пару плюсиков дам.

KSURi, ыыы )

Код:
main()
{
int fd;
struct sockaddr_in sa;
int i;

#ifndef _WIN32
#define closesocket close
WSADATA w; WSAStartup(0x202, &w);
#endif

memset(&sa.sin_zero, 0, 8);
sa.sin_addr.s_addr = inet_addr("127.0.0.1");
sa.sin_family = AF_INET;

for(i=1;i<65536;i++)
{
  fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  sa.sin_port = htons(i);
  if(connect(fd, (struct sockaddr*)&sa, sizeof(sa)) != -1)
    printf("%d\n", i);
  closesocket(i);
}
}
быстрее будет, если использовать неблокирующие сокеты и потом "собрать" все select'ом
 
Ответить с цитированием

  #9  
Старый 13.01.2007, 16:49
Аватар для KPOT_f!nd
KPOT_f!nd
Познавший АНТИЧАТ
Регистрация: 25.08.2006
Сообщений: 1,524
Провел на форуме:
3405508

Репутация: 1745


По умолчанию

Perl + Shell => рулиТТТ! БЫСТРО НАМНОГО ЧЕМ ЭТОТ! +) за старание
 
Ответить с цитированием

  #10  
Старый 18.09.2009, 19:06
Аватар для seledkapod
seledkapod
Новичок
Регистрация: 12.08.2009
Сообщений: 4
Провел на форуме:
8030

Репутация: -1
По умолчанию

Народ помогите, делаю все вот так:
Цитата:
Сообщение от Ad  
Всем привет. Давненько я статьи не писал. Сегодня мы разберем, как сканировать свою машину на открытые порты.
Вам потребуется: Visual Basic 6.0, прямые руки.
Так открывай Visual Basic (VB) или он у тебя открыт.
Далее добавляем на форму компонент Winsock. Добавили? Идем дальше. Добавляем четыре TextBox’a на форму, а так же кнопку (command), и StatusBar – в нем будет отображаться, что данная программа делает на определенном этапе. Вот уже визуально программа готова. Выглядит примерно так:

Дальше нажимаем на форму два раза (УДАЛЯЕМ ВСЕ С ПРОГРАММНОГО КОДА) и вставляем этот код, кстати я его пояснил максимально:
Private Sub Form_Load()
End Sub

Private Sub FoundPorts_Change()
FoundPorts.SelStart = Len(FoundPorts.Text) ‘длина строки порта
End Sub

Private Function AddPort(Port As Integer)
FoundPorts.Text = FoundPorts.Text & "[Connected] Port " & Port & vbCrLf –‘это выводимый, текуший текст
End Function

Private Sub Sock_Connect(Index As Integer)
AddPort (Sock(Index).RemotePort) – ‘если порт открыт, то эта строка нам показывает, что порт открыт!!!
Sock(Index).Close ‘ Закрываем сокет
End Sub

Private Sub Sock_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) ‘ показываем, что сокет закрыт, но данные должны остаться целыми в интерфейсе
Sock(Index).Close ‘ закрываем сокет
End Sub

Вот и все. Да кстати по Default’у можете поставить LocalHost и тогда программа должна сканировать вашу машину на открытые порты. Да кстати важная деталь у WinSock’a Index должен быть равен нулю!!!
Всех с наступающим новым годом!
(c) d1n 2006
- а оно мне ошибку выдает при попытке создать exe-шник типа "Sub или Function не определены". Как их определить то?


P.S. Сильно не ругайтесь так как в програмировании полный ноль
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Своими руками. Allen Болталка 15 11.04.2006 18:37
Как своими руками заставить мышь вибрировать dinar_007 Аппаратное обеспечение 8 17.02.2006 09:18
зацените сканер портов для диапазона ip nerezus PHP, PERL, MySQL, JavaScript 7 09.06.2005 17:33
Пишем MailBomber на перле foreva Чужие Статьи 3 08.02.2005 07:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ