информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медЗа кого нас держат?Spanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
off 03.09.02 00:01  Число просмотров: 1071
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Сходил по этой ссылочки, темки там ничего, интересные.
Но багтрак лучше ! :))) Красивей, удобней, да и народу тут побольше (и флейма тоже) :)))
<programming>
[C++] проблема с С++ 02.09.02 20:01  
Автор: Fjodor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вот написал я тут свой порт сканер на С с возможностью сканить диапозоны ИП адресов.
Но работает прога очень глючно! Сканит только первый хост, а потом другие несканит. В программе для хитрости использавана функция sprintf(). А может дело в gcc 2.95.3-19?
Помогите пожалуйста, вот исходник.

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <malloc.h>

int sec = 0;
int main(int argc, char *argv[])
{
int i;
int i1=atoi(argv[2]);
int i2=atoi(argv[3]);
char *buffer;
int sock;
int sock2;
struct sockaddr_in win1, ssh, rpc, addr, nix;
if(argc!=4)
{
printf("inncorect usage of the programm. Usage is ./scannner ip-address\n");
exit(1);
}
printf("Starting WMD port scanner v1.01beta. Made by Bedman. Good Luck to You!\n");
for(i=i1; i<=i2; i++){
sock2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
sprintf(buffer, "%s%d", argv[1], i);
printf("Scaning %s\n", buffer);
win1.sin_family = AF_INET;
win1.sin_addr.s_addr = inet_addr(buffer);
win1.sin_port = htons(138);
rpc.sin_family = AF_INET;
rpc.sin_addr.s_addr = inet_addr(buffer);
rpc.sin_port = htons(111);
ssh.sin_family = AF_INET;
ssh.sin_addr.s_addr = inet_addr(buffer);
ssh.sin_port = htons(22);
nix.sin_family = AF_INET;
nix.sin_addr.s_addr = inet_addr(buffer);
nix.sin_port = htons(23);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(buffer);

printf("Open ports:\n");
for(sec=0; sec<=65535; sec++)
{
addr.sin_port = htons(sec); /*??????????? ????? ????? */
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == 0)
{
printf("open port %d\n", sec);
}
}
}
}
тебе же уже сказали на uinc.ru , что проблема не в С,а в том как ты на нем программируешь 02.09.02 23:38  
Автор: SINоptiK Статус: Незарегистрированный пользователь
<"чистая" ссылка>
off 03.09.02 00:01  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Сходил по этой ссылочки, темки там ничего, интересные.
Но багтрак лучше ! :))) Красивей, удобней, да и народу тут побольше (и флейма тоже) :)))
это ты про uinc.ru :-) ? 03.09.02 20:44  
Автор: SINоptiK Статус: Незарегистрированный пользователь
<"чистая" ссылка>
ой, мать ;))) 02.09.02 22:58  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
1. Хоть бы написал что в каком параметре передаешь.
2. Это, типа, что ?:
for(i=i1; i<=i2; i++){
sprintf(buffer, "%s%d", argv[1], i);
win1.sin_addr.s_addr = inet_addr(buffer);

По коду можно понять только так:
арг[1] = 10.10.10.
а потом присобачиваешь последнюю цифирю IP адреса ?

3. Совсем не ясно нафига ны заполняешь структуры ssh, rpc, win1... если все равно их нигде не используешь.

4. Ну и последняя классичиская бага:
for(sec=0; sec<=65535; sec++)
if(connect(sock, (struct sockaddr*)&addr, sizeof(addr))

Ресурсы за тебя Пушкин освобождать будет ? Операционка у тебя не резиновая, однако.



> Вот написал я тут свой порт сканер на С с возможностью
> сканить диапозоны ИП адресов.
> Но работает прога очень глючно! Сканит только первый хост,
> а потом другие несканит. В программе для хитрости
> использавана функция sprintf(). А может дело в gcc
> 2.95.3-19?
> Помогите пожалуйста, вот исходник.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <malloc.h>
>
> int sec = 0;
> int main(int argc, char *argv[])
> {
> int i;
> int i1=atoi(argv[2]);
> int i2=atoi(argv[3]);
> char *buffer;
> int sock;
> int sock2;
> struct sockaddr_in win1, ssh, rpc, addr, nix;
> if(argc!=4)
> {
> printf("inncorect usage of the programm. Usage is
> ./scannner ip-address\n");
> exit(1);
> }
> printf("Starting WMD port scanner v1.01beta. Made by
> Bedman. Good Luck to You!\n");
> for(i=i1; i<=i2; i++){
> sock2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
> sprintf(buffer, "%s%d", argv[1], i);
> printf("Scaning %s\n", buffer);
> win1.sin_family = AF_INET;
> win1.sin_addr.s_addr = inet_addr(buffer);
> win1.sin_port = htons(138);
> rpc.sin_family = AF_INET;
> rpc.sin_addr.s_addr = inet_addr(buffer);
> rpc.sin_port = htons(111);
> ssh.sin_family = AF_INET;
> ssh.sin_addr.s_addr = inet_addr(buffer);
> ssh.sin_port = htons(22);
> nix.sin_family = AF_INET;
> nix.sin_addr.s_addr = inet_addr(buffer);
> nix.sin_port = htons(23);
> addr.sin_family = AF_INET;
> addr.sin_addr.s_addr = inet_addr(buffer);
>
> printf("Open ports:\n");
> for(sec=0; sec<=65535; sec++)
> {
> addr.sin_port = htons(sec); /*??????????? ????? ????? */
> sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
> if(connect(sock, (struct sockaddr*)&addr, sizeof(addr)) ==
> 0)
> {
> printf("open port %d\n", sec);
> }
> }
> }
> }
[C++] ой, мать ;))) 03.09.02 19:56  
Автор: Fjodor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> 1. Хоть бы написал что в каком параметре передаешь.
> 2. Это, типа, что ?:
> for(i=i1; i<=i2; i++){
> sprintf(buffer, "%s%d", argv[1], i);
> win1.sin_addr.s_addr = inet_addr(buffer);
>
> По коду можно понять только так:
> арг[1] = 10.10.10.
> а потом присобачиваешь последнюю цифирю IP адреса ?
>
> 3. Совсем не ясно нафига ны заполняешь структуры ssh, rpc,
> win1... если все равно их нигде не используешь.
>
> 4. Ну и последняя классичиская бага:
> for(sec=0; sec<=65535; sec++)
> if(connect(sock, (struct sockaddr*)&addr, sizeof(addr))
>
> Ресурсы за тебя Пушкин освобождать будет ? Операционка у
> тебя не резиновая, однако.
>
>
>
> > Вот написал я тут свой порт сканер на С с возможностью
> > сканить диапозоны ИП адресов.
> > Но работает прога очень глючно! Сканит только первый
> хост,
> > а потом другие несканит. В программе для хитрости
> > использавана функция sprintf(). А может дело в gcc
> > 2.95.3-19?
> > Помогите пожалуйста, вот исходник.
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <sys/socket.h>
> > #include <netinet/in.h>
> > #include <malloc.h>
> >
> > int sec = 0;
> > int main(int argc, char *argv[])
> > {
> > int i;
> > int i1=atoi(argv[2]);
> > int i2=atoi(argv[3]);
> > char *buffer;
> > int sock;
> > int sock2;
> > struct sockaddr_in win1, ssh, rpc, addr, nix;
> > if(argc!=4)
> > {
> > printf("inncorect usage of the programm. Usage is
> > ./scannner ip-address\n");
> > exit(1);
> > }
> > printf("Starting WMD port scanner v1.01beta. Made by
> > Bedman. Good Luck to You!\n");
> > for(i=i1; i<=i2; i++){
> > sock2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
> > sprintf(buffer, "%s%d", argv[1], i);
> > printf("Scaning %s\n", buffer);
> > win1.sin_family = AF_INET;
> > win1.sin_addr.s_addr = inet_addr(buffer);
> > win1.sin_port = htons(138);
> > rpc.sin_family = AF_INET;
> > rpc.sin_addr.s_addr = inet_addr(buffer);
> > rpc.sin_port = htons(111);
> > ssh.sin_family = AF_INET;
> > ssh.sin_addr.s_addr = inet_addr(buffer);
> > ssh.sin_port = htons(22);
> > nix.sin_family = AF_INET;
> > nix.sin_addr.s_addr = inet_addr(buffer);
> > nix.sin_port = htons(23);
> > addr.sin_family = AF_INET;
> > addr.sin_addr.s_addr = inet_addr(buffer);
> >
> > printf("Open ports:\n");
> > for(sec=0; sec<=65535; sec++)
> > {
> > addr.sin_port = htons(sec); /*??????????? ????? ?????
> */
> > sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
> > if(connect(sock, (struct sockaddr*)&addr,
> sizeof(addr)) ==
> > 0)
> > {
> > printf("open port %d\n", sec);
> > }
> > }
> > }
> > }

Да ты прав, я использую спринтф для склеивания ИП адреса, есть другой способ? но как выделить память под массивы?sec=malloc(10000); не компилируется! помоги плз.
1




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


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