Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сформировать и отправить tcp пакет 
:(
    Опции темы
ScoL
Дата 16.3.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



Здравствуйте форумчане вот возникла необходимость сформировать и отправить tcp пакет, погуглив наше код он был предназначен для ddos атаки, убрав цикл который отправлял несколько пакетов, обьявив некоторые переменные получил код приведенный ниже, но он все равно выдает ошибки, код использует winsock2,кому не трудно посмотрите пожалуйстая,и если не трудно сделайте комментарии основных моментов: как формируется и отправляется пакет.Заранее спасибо. smile 
Код

  iph = record
    ip_verlen: byte; 
    ip_tos: byte;
    ip_len: word; 
    ip_id: word; 
    ip_offset: word; 
    ip_ttl: byte; 
    ip_protocol: byte; 
    ip_checksum: word; 
    ip_saddr: longword; 
    ip_daddr: longword; 
  end; 

  tcph = record 
    th_sport: word;
    th_dport: word;  
    th_seq: longword; 
    th_ack: longword; 
    th_len: byte; 
    th_flags: byte; 
    th_win: word; 
    th_checksum: word; 
    th_upr: word; 
  end; 

var
  Form1: TForm1;
  ipHeader :iph;
  TCPHeader: tcph;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
WSAdata: TWSAData;
FSocket: TSocket;
port,op,nTimeOver,i : Integer;
begin
WSAStartup(MAKEWORD(2,2),WSAdata) ;
 FSocket:=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,nil,0,WSA_FLAG_OVERLAPPED);
 op:=1;
setsockopt(FSocket,IPPROTO_IP,IP_HDRINCL,@op,sizeof(op));
nTimeOver:=1000;
setsockopt(FSocket,SOL_SOCKET,SO_SNDTIMEO,@nTimeOver,sizeof(nTimeOver));


    ipHeader.ip_verlen:=(4 shl 4)or sizeof(ipheader) div sizeof(longword);
    ipHeader.ip_len:=htons(Size);
    ipHeader.ip_tos:=0; 
    ipHeader.ip_id:=1;  
    ipHeader.ip_offset:=0; 
    ipHeader.ip_ttl:=128; 
    ipHeader.ip_protocol:=IPPROTO_TCP; 
      FromIp:='';
      For j:=0 to 3 do
        begin
          RandIp:=random(255);
          Str(Randip,Buffer[j]);
        end;
    lstrcat(Fromip,Buffer[0]);    lstrcat(Fromip,'.');
    lstrcat(Fromip,Buffer[1]);    lstrcat(Fromip,'.');
    lstrcat(Fromip,Buffer[2]);    lstrcat(Fromip,'.'); 
    lstrcat(Fromip,Buffer[3]); 
    ipHeader.ip_saddr:=inet_addr(FromIp);
    ipHeader.ip_daddr:=inet_addr(DestIp) ;

    TCPHeader.th_sport:=htons(Random(65000)); 
    TCPHeader.th_dport:=htons(port); 
    TCPHeader.th_seq:=Random(4294967295); 
    TCPHeader.th_ack:=0;
    TCPHeader.th_len:=80;
    TCPHeader.th_flags:=2;
    TCPHeader.th_win:=htons(65535);
    TCPHeader.th_upr:=0; 
    TCPHeader.th_checksum:=0;
    DataPointer := @TCPIP[0];
    FillChar(TCPIP, SizeOf(TCPIP), 0); 
    Move(ipHeader.ip_saddr, DataPointer^, SizeOf(ipHeader.ip_saddr));
    DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_saddr)); 
    ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_saddr);
    Move(ipHeader.ip_daddr, DataPointer^, sizeof(ipHeader.ip_daddr));
    DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_daddr));
    ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_daddr);
    DataPointer := pointer(integer(DataPointer) + 1);
    Inc(ChecksumSize);
    Move(ipHeader.ip_protocol, DataPointer^, sizeof(ipHeader.ip_protocol));
    DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_protocol));
    ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_protocol);
    TcpHeaderLen := htons(sizeof(tcpHeader));
    Move(TcpHeaderLen, DataPointer^, sizeof(TcpHeaderLen));
    DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeaderLen));
    ChecksumSize := ChecksumSize + sizeof(TcpHeaderLen);
    Move(tcpHeader, DataPointer^, sizeof(tcpHeader));
    DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeader));
    ChecksumSize := ChecksumSize + sizeof(tcpHeader);
    tcpHeader.th_checksum := CheckSum(TCPIP, ChecksumSize);
    FillChar(TCPIP, sizeof(TCPIP), 0);
    DataPointer := @TCPIP[0];
    Move(ipHeader, DataPointer^, sizeof(ipHeader));
    DataPointer := pointer(integer(DataPointer) + SizeOf(IPHeader));
    Move(tcpHeader, DataPointer^, sizeof(tcpHeader));

     if (sendto(FSocket,TCPIP,Size,0,SockAddr_in,Sizeof(So  ckAddr_In))=SOCKET_ERROR)
        then
        memo1.lines.Add('error');
        else
        memo1.lines.Add('ok');
    end;

PM MAIL   Вверх
ScoL
Дата 19.3.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



что никто не поможет, мож дадите тогда простенький исходник с комментариями или статьи которые можно почитать
PM MAIL   Вверх
ScoL
Дата 23.3.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



ап
PM MAIL   Вверх
SneG0K
Дата 23.3.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



ScoL ты знаеш, что формирование такового пакета на уровне транспорта может быть использовано только для того, чтобы осуществить Spoofing-IP... И об этом не может быть речи на этом форуме!
PM WWW Skype   Вверх
ScoL
Дата 23.3.2008, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



Да я знаю это, но мне нужно просто для себя...так сказать кругозора, а вообще просто пытаюсь написать бота для одной игры...
PM MAIL   Вверх
vovksextra
Дата 24.3.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(SneG0K @ 23.3.2008,  20:58)
ScoL ты знаеш, что формирование такового пакета на уровне транспорта может быть использовано только для того, чтобы осуществить Spoofing-IP... И об этом не может быть речи на этом форуме!

Странные мышления! А другой вариант никак не рассматривается??? А их достаточно много.

А кнопки на форму ставить и так все умеют.

Парень же не задал вопрос как сломать некую защиту некого софта.



PM MAIL   Вверх
SneG0K
Дата 25.3.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



Хм... Интересно, а для чего еще могут использоваться сырые сокеты?
PM WWW Skype   Вверх
vovksextra
Дата 26.3.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(ScoL @ 19.3.2008,  16:31)
что никто не поможет, мож дадите тогда простенький исходник с комментариями или статьи которые можно почитать

К сожалению я не помню первоисточника, где я это нашел. По-этому перезалил в другое место.

Здесь ты найдешь все ответы на свои вопросы и плюс очень много всего интересного

(пусть меня простят авторы)) )

аштитипи://www.komservice.net/uploads/files/APEX.7z

Добавлено через 54 секунды
Цитата(SneG0K @ 25.3.2008,  18:26)
Хм... Интересно, а для чего еще могут использоваться сырые сокеты?

Они могут послужить и как защита от флуда ))
PM MAIL   Вверх
SneG0K
Дата 26.3.2008, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



От флуда?! Может наоборот? Для флуда? И для массовых расслылок? Или еще там для какой-то фигни? 

Нее... Может я старомодный, но я никак не представляю себе то, как использование сырых сокетов может защитить от флуда!
PM WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0731 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.