Example #1
0
    def __init__(self, iface=None, parent=None):
        super(QDialog, self).__init__(parent)
        self.setupUi(self)

        self.hooked = False

        #-- Network info
        self.interface = iface
        self.ip = QtNetwork.QNetworkInterface.interfaceFromName(
            self.interface).addressEntries()[0].ip().toString(
            )  #A way like another to get local IP

        #-- Nfqueue stuff
        self.ip = self.ip
        self.qmi = None
        self.qmo = None
        self.rulei = ""
        self.ruleo = ""

        #-- Stack stuff
        self.ethp = EthernetProtocol(self.interface)
        self.ipp = IPProtocol()
        self.ethp.register_layer(self.ipp)
        arpp = ARPProtocol(self.interface)
        self.ethp.register_layer(arpp)
        self.tcpp = TCPProtoModified(self)
        self.ipp.register_layer(self.tcpp)
        self.ethp.start_listening(doreactor=False)
        self.session = None
        self.app = None

        #-- Signal slot stuff
        self.connect(self.listenbutton, SIGNAL("clicked()"),
                     self.listenbutton_clicked)
        self.connect(self.inputbutton, SIGNAL("clicked()"),
                     self.inputbutton_clicked)
        self.connect(self, SIGNAL("mitm_received"), self.update_textreceived)
        self.connect(self, SIGNAL("mitm_sent"), self.update_textsent)
        self.connect(self, SIGNAL("kernel_sent"), self.update_textsent)
        self.connect(self, SIGNAL("kernel_received"), self.update_textreceived)
        self.connect(self, SIGNAL("gratuitous_received"),
                     self.update_textreceived)
Example #2
0
    Simple exemple that show how to create a stack by hand.
'''


class Scream(Layer):
    def packet_received(self, packet):
        print("Scream: " + packet.payload.name)


interface = "eth0"

#Layer 2
eth = EthernetProtocol(interface)

#Layer 3
ip = IPProtocol()
eth.register_layer(ip)  #Enregistre aussi eth comme defaut pour ip
arp = ARPProtocol(interface)
eth.register_layer(arp)

#Layer 4
tcp = TCPProtocol()
ip.register_layer(tcp)

#Layer 5
tcpsession = TCPSession(interface)
tcp.register_layer(tcpsession)

#Layer 6
#Nothing for now