def read(self, timeout):
        self.log.debug("Reading from the socket some data (timeout = " + str(timeout))
        result = bitarray(endian='big')

        chars = []
        try:
            if timeout > 0:
                ready = select.select([self.socket], [], [], timeout)
                if ready[0]:
                    chars = self.socket.recv(4096)
            else:
                ready = select.select([self.socket], [], [])
                self.log.debug("ready = " + str(ready[0]))
                if ready[0]:
                    chars = self.socket.recv(4096)
        except:
            self.log.debug("Impossible to read from the network socket")
            return None

        if (len(chars) == 0):
            return result
        result = TypeConvertor.stringB2bin(chars)

        self.log.debug("Received : {0}".format(TypeConvertor.bin2strhex(result)))
        return result
예제 #2
0
    def configureMemory(self):
        """Presets the meta-variables of the channel with specified values"""

        self.varL4Protocol = DataVariable(
            AbstractChannel.varID_L4_PROTOCOL,
            AbstractChannel.varID_L4_PROTOCOL, True, True,
            WordType(True, 0, 5),
            TypeConvertor.stringB2bin(self.originalProtocol))
        self.varBindIP = DataVariable(
            AbstractChannel.varID_BIND_IP, AbstractChannel.varID_BIND_IP, True,
            True, IPv4WordType(True, 7, 15),
            TypeConvertor.stringB2bin(self.originalBindIp))
        self.varBindPort = DataVariable(
            AbstractChannel.varID_BIND_PORT, AbstractChannel.varID_BIND_PORT,
            True, True, DecimalWordType(True, 0, 5),
            TypeConvertor.stringB2bin(str(self.originalBindPort)))
        self.varTargetIP = DataVariable(
            AbstractChannel.varID_TARGET_IP, AbstractChannel.varID_TARGET_IP,
            True, True, IPv4WordType(True),
            TypeConvertor.stringB2bin(self.originalTargetIp))
        self.varTargetPort = DataVariable(
            AbstractChannel.varID_TARGET_PORT,
            AbstractChannel.varID_TARGET_PORT, True, True,
            DecimalWordType(True, 0, 5),
            TypeConvertor.stringB2bin(str(self.originalTargetPort)))

        self.memory.forget(self.varL4Protocol)
        self.memory.memorize(self.varL4Protocol)

        self.memory.forget(self.varBindIP)
        self.memory.memorize(self.varBindIP)

        self.memory.forget(self.varBindPort)
        self.memory.memorize(self.varBindPort)

        self.memory.forget(self.varTargetIP)
        self.memory.memorize(self.varTargetIP)

        self.memory.forget(self.varTargetPort)
        self.memory.memorize(self.varTargetPort)
예제 #3
0
 def str2bin(self, stri):
     return TypeConvertor.stringB2bin(stri)
예제 #4
0
 def guessValue(self):
     """guessValue:
             Try to guess the pointed variable's value and give it to the current value.
     """
     # The 'TEMP' value is explicit enough.
     self.currentValue = TypeConvertor.stringB2bin("TEMP")
예제 #5
0
 def guessValue(self):
     """guessValue:
             Try to guess the pointed variable's value and give it to the current value.
     """
     # The 'TEMP' value is explicit enough.
     self.setCurrentValue(TypeConvertor.stringB2bin("TEMP"))
예제 #6
0
    def configureMemory(self):
        """Presets the meta-variables of the channel with specified values"""

        self.varL4Protocol = DataVariable(AbstractChannel.varID_L4_PROTOCOL, AbstractChannel.varID_L4_PROTOCOL, True, True, WordType(True, 0, 5), TypeConvertor.stringB2bin(self.originalProtocol))
        self.varBindIP = DataVariable(AbstractChannel.varID_BIND_IP, AbstractChannel.varID_BIND_IP, True, True, IPv4WordType(True, 7, 15), TypeConvertor.stringB2bin(self.originalBindIp))
        self.varBindPort = DataVariable(AbstractChannel.varID_BIND_PORT, AbstractChannel.varID_BIND_PORT, True, True, DecimalWordType(True, 0, 5), TypeConvertor.stringB2bin(str(self.originalBindPort)))
        self.varTargetIP = DataVariable(AbstractChannel.varID_TARGET_IP, AbstractChannel.varID_TARGET_IP, True, True, IPv4WordType(True), TypeConvertor.stringB2bin(self.originalTargetIp))
        self.varTargetPort = DataVariable(AbstractChannel.varID_TARGET_PORT, AbstractChannel.varID_TARGET_PORT, True, True, DecimalWordType(True, 0, 5), TypeConvertor.stringB2bin(str(self.originalTargetPort)))

        self.memory.forget(self.varL4Protocol)
        self.memory.memorize(self.varL4Protocol)

        self.memory.forget(self.varBindIP)
        self.memory.memorize(self.varBindIP)

        self.memory.forget(self.varBindPort)
        self.memory.memorize(self.varBindPort)

        self.memory.forget(self.varTargetIP)
        self.memory.memorize(self.varTargetIP)

        self.memory.forget(self.varTargetPort)
        self.memory.memorize(self.varTargetPort)