def info(self, addr): v = [ pluginsdk.ReadDword(addr), pluginsdk.ReadWord(addr + 4), pluginsdk.ReadWord(addr + 6), [] ] addr += 8 for i in range(8): v[3] += [pluginsdk.ReadByte(addr)] addr += 1 h = GuidHelper() g = h.guidOfVals(v) info = h.findGuid(g) if not info: Logger.info("Guid %s not found", str(g)) else: Logger.info(str(info))
def find(self, **kwargs): res = [] if kwargs.get('func'): f = kwargs.get('func') if isinstance(f, basestring): f = idaapi.get_name_ea(idc.BADADDR, f) res = self.checkFunc(f, **kwargs) or [] else: for funcea in idautils.Functions(): tp = idc.GetType(funcea) if tp is None or self.stname not in tp: continue r = self.checkFunc(funcea, **kwargs) if r: res += r if kwargs.get("silent"): return res if len(res): dictchooser.DictChooser('.'.join(self.name) + " usage", res, jumpProc=self.jump).Show() else: Logger.info("Nothing found")
def reload(self): Logger.info("Reloading pyout") MODS.reload()
def verbose(self): Logger.setVerbose(not Logger.isVerbose()) Logger.info("Verbose mode is %s.", "ON" if Logger.isVerbose() else "OFF")
def version(self): Logger.info("Pyout package v%s.", pyout.__version__)
def printGuid(self, addr=None, **kwargs): addr = addr or idaapi.get_screen_ea() Logger.info(self.guidAtAddr(addr))
def run(): x = Breaks.x64 Logger.info("break at %08X", x.rip) proc = Breaks.callbacks.get(x.rip) if proc: proc(x)