изменение http пакета

Home Forums Discussions Support изменение http пакета

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #5346
    DePrax
    Participant

      Всем привет!
      Имеется пакет перехваченный winpkfilter.
      Меняю в нём данные относящиеся к хттп пакету (на примере запроса поиска в гугле)

      Исходный пакет:

      GET /search?hl=ru&source=hp&q=test_test_test&aq=f&aqi=g3&aql=&oq=&gs_rfai= HTTP/1.1
      User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.63
      Host: http://www.google.ru
      Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
      Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
      Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
      Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
      Referer: http://www.google.ru/
      Cookie: SID=DQAAAI8AAACdEAaCqK2iBuVB1j9BUkdVJ5LODiUho3u8f4CdFw2VyNZUNYHEAvqMPGfzP4GJn4iimUYE06ddh0nSnamWzUtFWfx3FE-sPZLl175SXHgQomnJFoghXObEBmDauReRBUZJ8Rn_VRSK8SkItvKaJTnaffOEml9GAgqR8TuevgkPm9hIpb-C0sYDXynUGalqC9A; HSID=AAbeTc2MOhumUmUjd; PREF=ID=e2db04b8b6118fd3:U=c6798ae856192631:FF=0:NW=1:TM=1289132773:LM=1289132804:S=ZVuENLF8S1ubuWMA; NID=40=SxnZxvJXKdr4QVVf6CfGLKYld64oC-SEiJxXW7y2LBDFwXDefVaFIK0AjSsZTb6EF5zDVRtkCapMfkiyrFNbHfcv_rSUaxMJ4zGivVYKx8lfnF3UzMSFWnx_A1QaR6dt
      Cookie2: $Version=1
      Connection: Keep-Alive, TE
      TE: deflate, gzip, chunked, identity, trailers

      Изменённый пакет:

      GET /search?hl=ru&source=hp&q=ololo&aq=f&aqi=g3&aql=&oq=&gs_rfai= HTTP/1.1
      User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.63
      Host: http://www.google.ru
      Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
      Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
      Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
      Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
      Referer: http://www.google.ru/
      Cookie: SID=DQAAAI8AAACdEAaCqK2iBuVB1j9BUkdVJ5LODiUho3u8f4CdFw2VyNZUNYHEAvqMPGfzP4GJn4iimUYE06ddh0nSnamWzUtFWfx3FE-sPZLl175SXHgQomnJFoghXObEBmDauReRBUZJ8Rn_VRSK8SkItvKaJTnaffOEml9GAgqR8TuevgkPm9hIpb-C0sYDXynUGalqC9A; HSID=AAbeTc2MOhumUmUjd; PREF=ID=e2db04b8b6118fd3:U=c6798ae856192631:FF=0:NW=1:TM=1289132773:LM=1289132804:S=ZVuENLF8S1ubuWMA; NID=40=SxnZxvJXKdr4QVVf6CfGLKYld64oC-SEiJxXW7y2LBDFwXDefVaFIK0AjSsZTb6EF5zDVRtkCapMfkiyrFNbHfcv_rSUaxMJ4zGivVYKx8lfnF3UzMSFWnx_A1QaR6dt
      Cookie2: $Version=1
      Connection: Keep-Alive, TE
      TE: deflate, gzip, chunked, identity, trailers

      Проблема состоит в следующем:
      Если запрос в гугле был длиннее или такой же как на тот который мы заменяем, то всё в порядке. Выдаются результаты по изменённому параметру.
      Если исходный запрос был короче, то – “Соединение закрыто удалённым севером”.
      Есть подозрение что проблема кроется в значении длины буфера, которое передаётся в пакете. (я пробовал его изменять, но результат остался прежним) Незнаю что дальше делать, помогите пожалуйста 🙂

      #6997
      Vadim Smirnov
      Keymaster

        Если изменяется длина пакета, то нужно позаботится об изменении полей SEQ/ACK в TCP заголовке.

        #6998
        DePrax
        Participant

          SerpentFly, спасибо большое! попробую 🙂

          #6999
          DePrax
          Participant

            Прочитал описание SEQ/ACK полей и непонял как на них может повлиять изменение размера пакета…

            Sequence number (32 bits) – has a dual role If the SYN flag is set, then this is the initial sequence number. The sequence number of the actual first data byte will then be this sequence number plus 1. If the SYN flag is not set, then this is the sequence number of the first data byte

            Acknowledgement number (32 bits) – if the ACK flag is set then the value of this field is the next expected byte that the receiver is expecting.

            SerpentFly, расскажите пожалуста по подробнее.

            ЗЫ: может поле th_sum (структуры tcphdr) нужно пересчитывать?…

            #7000
            Vadim Smirnov
            Keymaster

              Внимательно читайте описание протокола TCP, например если пакет был уменьшен, то приемник ACK-нет меньшим сегментом и отправитель будет пересылать хвостик пакета до тех пор пока не получит подтверждение.И наоборот, если пакет увеличен то приемник ACK-нет большим значением чем ожидает отправитель. Принцип понятен?

            Viewing 5 posts - 1 through 5 (of 5 total)
            • You must be logged in to reply to this topic.