def do_codepath(self, line): """ Enumerate and show any known code paths from the specified from address expression to the to address expression. Usage: codepath <from_expr> <to_expr> """ if not line: return self.do_help("codepath") argv = e_cli.splitargs(line) if len(argv) != 2: return self.do_help("codepath") try: frva = self.parseExpression(argv[0]) except Exception: self.vprint("Invalid From Va: %s" % argv[0]) return try: tova = self.parseExpression(argv[1]) except Exception: self.vprint("Invalid To Va: %s" % argv[1]) return self.vprint("Tracking Paths From 0x%.8x to 0x%.8x" % (frva, tova)) paths = viv_vector.getCodePaths(self, frva, tova) self.vprint("Function VA\tBlock VA\tSize\tFunction Name") count = 0 for blist in paths: count += 1 self.vprint("=" * 30) for bva, bsize, fva in blist: fname = self.getName(fva) self.vprint("0x%.8x\t0x%.8x\t%4d\t%s" % (fva, bva, bsize, fname)) if count == 0: self.vprint("None!") return
def do_codepath(self, line): """ Enumerate and show any known code paths from the specified from address expression to the to address expression. Usage: codepath <from_expr> <to_expr> """ if not line: return self.do_help("codepath") argv = e_cli.splitargs(line) if len(argv) != 2: return self.do_help("codepath") try: frva = self.parseExpression(argv[0]) except Exception as e: self.vprint("Invalid From Va: %s" % argv[0]) return try: tova = self.parseExpression(argv[1]) except Exception as e: self.vprint("Invalid To Va: %s" % argv[1]) return self.vprint("Tracking Paths From 0x%.8x to 0x%.8x" % (frva, tova)) paths = viv_vector.getCodePaths(self, frva, tova) self.vprint("Function VA\tBlock VA\tSize\tFunction Name") count = 0 for blist in paths: count += 1 self.vprint("="*30) for bva, bsize, fva in blist: fname = self.getName(fva) self.vprint("0x%.8x\t0x%.8x\t%4d\t%s" % (fva, bva, bsize,fname)) if count == 0: self.vprint("None!") return
try: frva = self.parseExpression(argv[0]) except Exception, e: self.vprint("Invalid From Va: %s" % argv[0]) return try: tova = self.parseExpression(argv[1]) except Exception, e: self.vprint("Invalid To Va: %s" % argv[1]) return self.vprint("Tracking Paths From 0x%.8x to 0x%.8x" % (frva, tova)) paths = viv_vector.getCodePaths(self, frva, tova) self.vprint("Function VA\tBlock VA\tSize\tFunction Name") count = 0 for blist in paths: count += 1 self.vprint("="*30) for bva, bsize, fva in blist: fname = self.getName(fva) self.vprint("0x%.8x\t0x%.8x\t%4d\t%s" % (fva, bva, bsize,fname)) if count == 0: self.vprint("None!") return def do_vampsig(self, line): """