from CweCheckerParser import CweWarning class IdaGenerator(object): def __init__(self, results): self._results = results def generate(self): script = "import sark\nimport idaapi\n" for res in self._results: if isinstance(res, CweWarning): if res.highlight and res.address: first_address = res.address[0] script += "sark.Line(%s).color = %s\n" % (first_address, res.color) script += "sark.Line(%s).comments.regular = '%s'\n" % (first_address, res.description) script += "print('[ %s ] %s')\n" % (first_address, res.description) else: script += "print('[ GENERAL ] %s')\n" % res.description else: script += "print('[CheckPath] %s ( %s ) -> %s via %s')\n" % (res.source, res.source_addr, res.destination, res.path_str) return script