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)
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
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
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)
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()]
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()]
def getFields(self): self.fields = [Field.createDefaultField()] return self.fields
def getFields(self): self.fields = [Field.createDefaultField()] return self.fields