На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Траблы в sendto , не хатит отправлять
    Изучаю UDP flood(DOS атака). Но вот решил написать программку, которая

    меняет в UDP пакетах ip адресса, ну и посмотреть снифером как это будет

    выглядеть.
    Приведу вкратце код:

    int sfd;
    sfd=socket(AF_INET, SOCK_RAW,IPPROTO_RAW);
    int iTrue=1;
    setsockopt( sfd, IPPROTO_IP, IP_HDRINCL, (char*)&iTrue,sizeof(iTrue));
    ...
    код формирования пакета
    пусть сформированный пакет будет в переменной packet
    ...
    struct sockaddr_in sin;
    memset(&sin,0,sizeof(sin));
    sin.sin_family=AF_INET;
    sin.sin_port=htons(10000);  
    sin.sin_addr.s_addr=inet_addr("127.0.0.5");
    sendto(sfd,(char*)&packet,sizeof(packet),0,(const struct

    sockaddr*)&sin,sizeof(sin));


    У меня стоит Windows 2000(RAW сокеты поддерживаются). Ошибка в sendto

    она не хочет ничего отсылать. Ошибку выловил с помощью WSAGetLastError.
    Её код 10049.
    Описание:
    Ang
    *******
    Cannot assign requested address.

    The requested address is not valid in its context. Normally results

    from an attempt to bind to an address that is not valid for the local

    machine, or connect/sendto an address or port that is not valid for a

    remote machine (e.g. port 0).
    *******
    RUS
    *******
    Не может назначать запрошенный адресс

    Запрошенный адрес не действителен в его контексте.Нормальный результат

    от попытки связать с адресом, который не действителен для локального

    компа, или connect/sendto адрес или порт, который не действителен для

    удаленной машины.
    *******

    Смотрел исходники спуффера под Unix вроде также сделанно. Подскажите в

    чем трабла?

    ЗЫ.
    Если в setsockopt написать не (char*)&iTrue, а (char*)iTrue. То sendto

    отошлет данные(хотя айпи адрес в этом пакете не заменен), но функция

    setsockopt начинает выдавать ошибку 10014(это не важно потому что надо

    писать с &, то есть передавать указатель).
      Я с этим сталкивался, и в конце концов, так и не разобравшись, заюзал WinPCap, отличная вещь, даже MAC подставлять позволяет wink.gif (правда он работает только с сетевой карточкой)
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0181 ]   [ 16 queries used ]   [ Generated: 4.05.24, 07:32 GMT ]