jak dodać nagłówki http do pakietu wąchanego za pomocą scapy

Próbuję wyczuć przechodzenie pakietu http za pomocą scapy, dodać kilka nowych nagłówków http i wysłać go dalej. Zamiarem jest tu wstawienie tylko nowych nagłówków przy zachowaniu nienaruszonego pakietu. W razie potrzeby należy ponownie obliczyć sumę kontrolną.

Przeszliśmy przez prawie wszystkie pytania dotyczące SO, ale nie dostałem rozwiązania.

Oto co zrobiłem.

def parse(pkt):

    if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw):
        pkt = pkt / "New Header:value\r\n\r\n"

        # OR i tried this
        #pkt = pkt.getlayer(Raw).load / Raw.load(load="New Header:value\r\n\r\n")

        #pkt.getlayer(Raw).load("New Header:value\r\n\r\n")
        pkt.show()
        #del pkt[IP].chksum
        send(pkt)
#end parse function

# start sniffing
a=sniff(filter="tcp and ( port 80 )", prn=parse)

Problem polega na tym, że powyższy kod wstawia nową surową sekcję ładunku zamiast dodawać zwykły nagłówek. Istnieje już podwójna nowa linia r n, aby wskazać zakończenie nagłówka zgodnie ze standardem HTTP.

Aby przezwyciężyć ten problem, próbowałem usunąć ostatnie n, wykonując następujące czynności

   #pkt = pkt.getlayer(Raw).load[-2:] / Raw.load(load="New Header:value\r\n\r\n")

Ale to usuwa wszystkie wcześniej istniejące nagłówki i pozostaje tylko „Nowy nagłówek”.

Próbowałem tego na mennicy Linuksa.

UPDATE: Próbuję utworzyć nowy ładunek http, który zawierałby poprzednie nagłówki i dodam kilka. Czy może pomóc w usunięciu istniejącej warstwy?

questionAnswers(1)

yourAnswerToTheQuestion