Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 10, 2010 22:28:52

severum
От:
Зарегистрирован: 2008-01-06
Сообщения: 54
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос scapy

Практически не знаком с сетевым программированием, пытаюсь вначале отловить некоторые пакеты, потом послать свои и возможно заменить посылаемые на свои.
вначале написал proxy с twisted, но просто proxy недостаточно, а перехватывать twisted не умеет вроде.
Интересуют пакеты длиннее 40.

Вначале пробовал pcap, вроде все необходимые данные понял как получить:

import dpkt
import pcap
import struct
pc = pcap.pcap()
pc.setfilter('dst port 5190')
for ts, pkt in pc:
pkt = dpkt.ethernet.Ethernet(pkt)
if(pkt.ip.len==40):
continue
src = int(struct.unpack('I', pkt.ip.src)[0])
dst = int(struct.unpack('I', pkt.ip.dst)[0])
srcport = int(pkt.ip.data.sport)
dstport = int(pkt.ip.data.dport)
print pkt.ip.data.data
Но вроде через него нельзя отправить свой пакет.
Поэтому тест на scapy:
from scapy.all import *
while True:
xxx = sniff(filter="dst port 5190", count=1, iface="eth1")
x = xxx[0]
if(x.__dict__['payload'].__dict__['fields']['len']>40):
print x.__dict__['payload'].__dict__['payload'].__dict__['payload'].__dict__['fields']['load']
Вопросы:
1. что почитать чтобы начать в этом ориентироваться?
2. почему получается такой путь до данных в scapy?
3. pcap работал четко, а print в scapy выводит не все пакеты…
4. точно ли в pcap не отослать пакет и есть ли простой пример как отправить пакет в scapy (который был бы идентичен тем что отправляются сейчас сохранить/подменить данные и длину/отправить)
5. может я что то не так делаю? как правильно?

Заранее большое спасибо.



Отредактировано (Сен. 10, 2010 22:31:28)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version