Проблема со структурой TCP Сегментами.

Discussion in 'Реверсинг' started by Велемир, 7 Aug 2009.

  1. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    День добрый.Использую утилиту IP Tools 1.98.08.Возьмём.к примеру,следующий пакет:

    PHP:

    0x
    0045 00 00 28 D0 B8 40 00 80 06 72 91 52 83 05 8B
    0x10
    40 0C 1F 6C 04 22 14 46 0D DF 3D C4 78 E2 AD0A
    0x20
    5010 FD59 70FC 0000

    http://ru.wikipedia.org/wiki/TCP

    К примеру,возьмём порт источника.Судя по гуглу,это должны быть биты 4-9,т.е 2-3-ий байты.Но сниффер показывает байт,расположенный на строке 0х10 - 0422.Не странный ли результат и кому теперь верить ? Хоть под размер подходит...
     
  2. ettee

    ettee Administrator
    Staff Member

    Joined:
    12 Oct 2006
    Messages:
    466
    Likes Received:
    1,036
    Reputations:
    1,065
    Смещение. Относительно TCP пакета смещение 0.
    Source port/Destination port это 16 —битовые поля.
     
    _________________________
  3. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Чтоб не гадать , для наглядности лучше использовать снифферы нормальные. Например - wireshark.
     
  4. PvgValo

    PvgValo Active Member

    Joined:
    1 Aug 2009
    Messages:
    548
    Likes Received:
    160
    Reputations:
    57
    Если не ошибаюсь, то порт отправителя должен находится в 34-35 байтах, плюс интересно смотря какая задача перед тобой стоит, все же стоит учитывать, что если пакет тэггированный, то будет смещение на 4 байта :)
    Странное значение если получилось, не забывай проверять! Смотри по какого порта ты отправляешь пакет, и соответственно значение которое ты получишь в нужных тебе байтах, будет номер порта только в шестнадцатиричной системе

    p.s. Если не линух а винда, то альтернатива wireshark'у - Ethereal
     
    #4 PvgValo, 7 Aug 2009
    Last edited: 7 Aug 2009
  5. oRb

    oRb Elder - Старейшина

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    581
    Reputations:
    256
    Это IP пакет. До TCP еще дойти надо. Так смотреть удобнее:
    Code:
    45 00 00 28 <- IPv4
    D0 B8 40 00
    80 06 72 91
    52 83 05 8B <- IP-адрес отправителя
    40 0C 1F 6C <- IP-адрес получателя
    04 22 14 46 <- Отсюда уже начинается TCP (исходя из ого, что длина заголовка этого пакета = 5)
    0D DF 3D C4
    78 E2 AD 0A
    50 10 FD 59
    70 FC 00 00 
    
    Исходя из дампа:
    ип:порт отправителя - 82.131.5.139:1058
    получателя: 64.12.31.108:5190 (ICQ)
     
  6. PvgValo

    PvgValo Active Member

    Joined:
    1 Aug 2009
    Messages:
    548
    Likes Received:
    160
    Reputations:
    57
    oRb, ну я имел ввиду TCP/IP соответственно. Вот пример пакета:

    0000 00 01 03 fb 60 85 00 17 31 bb fd a1 08 00 45 00
    0010 00 30 4a 6c 40 00 80 06 55 6b c0 a8 00 02 5b 14
    0020 3f 32 10 7a 2f 20 9c e4 17 cf 00 00 00 00 70 02
    0030 ff ff 33 e1 00 00 02 04 05 b4 01 01 04 02
    Подчеркнул порт источника! Соответственно это 0-1 байты TCP или 34-35 байты TCP/IP! Все же уровни OSI путать не стоит, IP это третий уровень - сетевой, а TCP это Транспортный уровень, собственно то что нужно! ;)