Пример #1
0
 def alignSymbol(self, symbol, doInternalSlick, defaultFormat):
     messages = symbol.getMessages()
     if messages == None or len(messages) == 0:
         logging.debug("The symbol '" + symbol.getName() + "' is empty. No alignment needed")
         symbol.cleanFields()
         field = Field.createDefaultField()
         # Use the default protocol type for representation
         field.setFormat(defaultFormat)
         symbol.addField(field)
     else:
         symbol.cleanFields()
         # We execute the alignment
         (alignment, score) = self.align(doInternalSlick, messages)
         symbol.setAlignment(alignment)
         logging.debug("Alignment : {0}".format(alignment))
         # We update the regex based on the results
         try:
             self.buildRegexFromAlignment(symbol, alignment, defaultFormat)
         except NetzobException:
             logging.warn("Partitionnement error: too much fields (>100) for the symbol '" + symbol.getName() + "'")
             symbol.cleanFields()
             field = Field.createDefaultField()
             # Use the default protocol type for representation
             field.setFormat(defaultFormat)
             symbol.addField(field)
Пример #2
0
 def __init__(self, ID, name, project):
     AbstractSymbol.__init__(self, Symbol.TYPE)
     self.id = ID
     self.project = project
     self.messages = []
     self.field = Field.createDefaultField(self)
     self.field.setName(name)
     self.project = project
     self.pattern = None
Пример #3
0
 def __init__(self, ID, name, project):
     AbstractSymbol.__init__(self, Symbol.TYPE)
     self.id = ID
     self.project = project
     self.messages = []
     self.field = Field.createDefaultField(self)
     self.field.setName(name)
     self.project = project
     self.pattern = None
Пример #4
0
    def importTraceInProject(self, trace, project):
        percent = 0.0
        inc = 1.0 / len(trace.getMessages())
        # We create a symbol dedicated for the trace
        symbol = Symbol(uuid.uuid4(), trace.getType(), project)
        for message in trace.getMessages():
            percent += inc
            symbol.addMessage(message)
            gobject.idle_add(self.progressbarAlignment.set_fraction, float(percent))

        # We create a default field for the symbol
        symbol.addField(Field.createDefaultField())
        # and register the symbol in the vocabulary of the project
        project.getVocabulary().addSymbol(symbol)
        project.saveConfigFile(self.workspace)
Пример #5
0
    def __init__(self, id=None):
        AbstractSymbol.__init__(self, "TrashSymbol")
        self.id = id
        if self.id is None:
            id = str(uuid.uuid4())
        self.name = "TrashSymbol"
        self.messages = []
        self.encodingFilters = []
        self.visualizationFilters = []

        # Interpretation attributes
        self.format = Format.HEX
        self.unitSize = UnitSize.NONE
        self.sign = Sign.UNSIGNED
        self.endianess = Endianess.BIG

        # Clean the symbol
        self.fields = [Field.createDefaultField()]
Пример #6
0
    def __init__(self, id=None):
        AbstractSymbol.__init__(self, "TrashSymbol")
        self.id = id
        if self.id is None:
            id = str(uuid.uuid4())
        self.name = "TrashSymbol"
        self.messages = []
        self.encodingFilters = []
        self.visualizationFilters = []

        # Interpretation attributes
        self.format = Format.HEX
        self.unitSize = UnitSize.NONE
        self.sign = Sign.UNSIGNED
        self.endianess = Endianess.BIG

        # Clean the symbol
        self.fields = [Field.createDefaultField()]
Пример #7
0
 def getFields(self):
     self.fields = [Field.createDefaultField()]
     return self.fields
Пример #8
0
 def getFields(self):
     self.fields = [Field.createDefaultField()]
     return self.fields