Разбор Ethernet-фреймов

У меня есть кадры Ethernet, и я хочу получить полезную нагрузку TCP на конкретный порт из этих кадров.

Как мне это сделать? Есть ли библиотеки для разбора фреймов и tcp?

Платформа - Linux.


person Manjeet Dahiya    schedule 19.10.2012    source источник


Ответы (2)


По сути, вам нужно удалить заголовок Ethernet в качестве первого шага. Затем удалите заголовок IP и, наконец, удалите заголовок TCP. Однако шифрование может быть на уровне MAC или IP. В этом случае вам необходимо расшифровать данные, прежде чем вы сможете удалить заголовок и извлечь полезную нагрузку. В любом случае это очень широкий вопрос; вам следует ознакомиться с http://en.wikipedia.org/wiki/OSI_model. Я убедитесь, что в Linux есть библиотеки, которые делают то, что вы просите (при условии, что нет шифрования или вы можете расшифровать)

person SomeWittyUsername    schedule 19.10.2012

Может быть, попробуйте поискать библиотеки в libpcap / winpcap / jpcap или почерпнуть какие-нибудь идеи.

Или, если предположить, что кадры находятся в самой простой форме (без шифрования, без 802.1Q, нет ... и т. Д.), Они будут выглядеть так:

dmac (6) + smac (6) + etype (2) + IP_hdr (20) + TCP_src_port (2) + TCP_dst_port (2)

Вы можете сопоставить свой порт tcp dst соответствующим образом со смещением кадра.

person user1500049    schedule 19.10.2012