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

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

This topic contains 4 replies, has 2 voices, and was last updated by  Vadim Smirnov 6 years, 2 months ago.

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
    Moderator

    Если изменяется длина пакета, то нужно позаботится об изменении полей 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
    Moderator

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

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.