Я делаю небольшой сетевой проект, используя библиотеку scapy для python. Мой проект включает в себя обнюхивать в пакетах, и подкладки нового слоя между слоями 3 и 4.Scapy - вставить слой пакета между двумя другими слоями
Используя это руководство, http://www.secdev.org/projects/scapy/doc/build_dissect.html
Я был в состоянии создать новый пакетный слой. Я могу легко добавить слой поверх существующего пакета, делая что-то подобное,
packet = newlayer()/packet
И слой newlayer() будет размещен ниже уровня IP. Я хочу, однако, сэндвич этого нового слоя между слоями 3 и 4 (вместо чуть ниже IP). Но я не могу понять, как легко это осуществить.
Я знаю, что я могу просто создать новый пакет и сделать что-то вроде,
packet = Ether()/IP()/newlayer()/TCP()
однако с тех пор, я хочу, чтобы вставить слой в пакеты, которые я уже понюхал, я хотел бы просто изменить исходный пакет вместо создания нового пакета с нуля.
Любая помощь будет оценена!
Возможно, это поможет: http://stackoverflow.com/questions/29133482/scapy-how-to-insert-a-new-layer-802-1q-into-existing-packet –