def testGenerateEthernetPacket2(self):
     context = {}
     ethernetPacket = EthernetPacket(context)
     context.update ({'src_mac' : '00:0F:FE:91:FE:D1',
                      'dst_mac' : '00:50:43:00:00:01',
                      'ether_type' : '0x9201',
                      'tag' : '',
                      'payload' : "\x55" * 7 + "\xD5" + \
                                  "\xE0\x01" + \
                                  "\x00\x03\x19\x00\x03\xDE" + \
                                  "\xFF" * 6 + \
                                  "\x08\x06" + \
                                  "\x80" * 2 + \
                                  "\xB2\x47\x42\x3A" + \
                                  "\x53\xB9\x6F\x64"})
     expectedPacket = "\x00\x50\x43\x00\x00\x01" + \
                      "\x00\x0f\xFE\x91\xFE\xD1" + \
                      "\x92\x01" + \
                      "\x55" * 7 + "\xD5" + \
                      "\xE0\x01" + \
                      "\x00\x03\x19\x00\x03\xDE" + \
                      "\xFF" * 6 + \
                      "\x08\x06" + \
                      "\x80" * 2 + \
                      "\xB2\x47\x42\x3A" + \
                      "\x53\xB9\x6F\x64" + \
                      "\x6B\x24\x47\xEC"
     self.assertEquals(expectedPacket, ethernetPacket.generatePacket())
 def testGenerateEthernetPacket1(self):
     context = {}
     packet_ethernet = EthernetPacket(context)
     context.update ({'src_mac' : 'FF:FF:FF:FF:FF:FF',
                      'dst_mac' : '00:03:19:00:03:DE',
                      'ether_type' : '0x0806',
                      'tag' : '',
                      'payload' : "\x80" * 2})
     expectedPacket = "\x00\x03\x19\x00\x03\xDE" + \
                      "\xFF\xFF\xFF\xFF\xFF\xFF" + \
                      "\x08\x06" + \
                      "\x80\x80" + \
                      "\xB2\x47\x42\x3A";
     self.assertEquals(expectedPacket, packet_ethernet.generatePacket())
Ejemplo n.º 3
0
 def __init__(self, context):
     self.__localContext = {}
     self.__etherPacket = EthernetPacket(self.__localContext)
     
     self.__defaults = {'src_mac' : '01:02:03:04:05:06',
                        'dst_mac' : 'ff:ff:ff:ff:ff:ff'}
     
     context.update(self.__defaults)
     self.__context = context
Ejemplo n.º 4
0
class MagicPacket(AbstractPacket):
   
    def __init__(self, context):
        self.__localContext = {}
        self.__etherPacket = EthernetPacket(self.__localContext)
        
        self.__defaults = {'src_mac' : '01:02:03:04:05:06',
                           'dst_mac' : 'ff:ff:ff:ff:ff:ff'}
        
        context.update(self.__defaults)
        self.__context = context
        
    def getShortDescription(self):
        return ""

    def getOptions(self):
        return ""
    
    def __generateMAC(self, strValue):
        listOctets = strValue.split(':');
        resultMAC = ""
        for octet in listOctets:
            resultMAC += (chr(int( octet, 16)))
        return resultMAC
    
    def __generateDestMAC(self):
        return self.__generateMAC(self.__context['dst_mac'])
    
    def getFullDescription(self):
        return ""
    
    def getDefaults(self):
        return ""
    
    def setOption( self, key, value ):
        pass
    
    def __generatePayload(self):
        return "\xff" * 6 + self.__generateDestMAC() * 16
        
    def generatePacket(self):
            self.__localContext['payload'] = self.__generatePayload()
            self.__localContext['ether_type'] = '0x842'
            self.__localContext.update(self.__context)
            return self.__etherPacket.generatePacket()[0:-4]