Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Пишем сканер открытых портов своими руками. (https://forum.antichat.xyz/showthread.php?t=30169)

Ad 29.12.2006 11:19

Пишем сканер открытых портов своими руками.
 
Всем привет. Давненько я статьи не писал. Сегодня мы разберем, как сканировать свою машину на открытые порты.
Вам потребуется: Visual Basic 6.0, прямые руки.
Так открывай Visual Basic (VB) или он у тебя открыт.
Далее добавляем на форму компонент Winsock. Добавили? Идем дальше. Добавляем четыре TextBox’a на форму, а так же кнопку (command), и StatusBar – в нем будет отображаться, что данная программа делает на определенном этапе. Вот уже визуально программа готова. Выглядит примерно так:
http://img82.imageshack.us/img82/829...escanerbd7.gif
Дальше нажимаем на форму два раза (УДАЛЯЕМ ВСЕ С ПРОГРАММНОГО КОДА) и вставляем этот код, кстати я его пояснил максимально:
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

KSURi 29.12.2006 17:38

гениально
PS:
Код:

perl -MIO::Socket -e "for(1..65535){if($sock=IO::Socket->new(PeerAddr=>"localhost",PeerPort=>$_)){print $_.' '}}"

Gh0s7 31.12.2006 19:21

Мда. К мега превад 1337 сканеру ксуря +1) Перл рулед.

_Great_ 31.12.2006 19:58

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

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);
}
}


Gh0s7 31.12.2006 21:32

Цитата:

Сообщение от _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);
}
}



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

Ad 01.01.2007 17:00

Еще могу на php выложить :)

W!z@rD 13.01.2007 12:49

пошел делать сканер портов на Photoshop
=))

Dude03 13.01.2007 16:34

Цитата:

Сообщение от _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'ом

KPOT_f!nd 13.01.2007 16:49

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

seledkapod 18.09.2009 19:06

Народ помогите, делаю все вот так:
Цитата:

Сообщение от Ad
Всем привет. Давненько я статьи не писал. Сегодня мы разберем, как сканировать свою машину на открытые порты.
Вам потребуется: Visual Basic 6.0, прямые руки.
Так открывай Visual Basic (VB) или он у тебя открыт.
Далее добавляем на форму компонент Winsock. Добавили? Идем дальше. Добавляем четыре TextBox’a на форму, а так же кнопку (command), и StatusBar – в нем будет отображаться, что данная программа делает на определенном этапе. Вот уже визуально программа готова. Выглядит примерно так:
http://img82.imageshack.us/img82/829...escanerbd7.gif
Дальше нажимаем на форму два раза (УДАЛЯЕМ ВСЕ С ПРОГРАММНОГО КОДА) и вставляем этот код, кстати я его пояснил максимально:
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. Сильно не ругайтесь так как в програмировании полный ноль


Время: 13:19