def make_results(self, pid, memory_handler): from haystack.reverse import config from haystack.reverse import api finder = memory_handler.get_heap_finder() dumpname = memory_handler.get_name() if not os.access(dumpname, os.F_OK): os.mkdir(dumpname) api.reverse_instances(memory_handler) process_context = memory_handler.get_reverse_context() for i, heap in enumerate(finder.get_heap_mappings()): heap_addr = heap.get_marked_heap_address() ctx = process_context.get_context_for_heap(heap) # get the name of the interesting text output for the user. outdirname = ctx.get_filename_cache_headers() #config.get_cache_filename(config.CACHE_GENERATED_PY_HEADERS_VALUES, # ctx.dumpname, # ctx._heap_start) yield (pid, heap_addr, outdirname)
offset = m.offset print m, "p.Signature", valid, hex(p.Signature), repr(m._backend[8+offset:12+offset]), v = api.validate_record(handler, res[0], heap_constraints) print "validate", v if p.Signature == 0xeeffeeff: possibles.append(m) import code code.interact(local=locals()) for m in possibles: print "trying m", m logging.getLogger("basicmodel").setLevel(logging.INFO) res = api.load_record(handler, struct__HEAP, m.start, heap_constraints) logging.getLogger("basicmodel").setLevel(logging.DEBUG) v = api.validate_record(handler, res[0], heap_constraints) print "that was", m import code code.interact(local=locals()) else: from haystack.reverse import api api.reverse_instances(handler) import code code.interact(local=locals())
valid, hex(p.Signature), repr(m._backend[8 + offset:12 + offset]), ) v = api.validate_record(handler, res[0], heap_constraints) print("validate", v) if p.Signature == 0xeeffeeff: possibles.append(m) import code code.interact(local=locals()) for m in possibles: print("trying m", m) logging.getLogger("basicmodel").setLevel(logging.INFO) res = api.load_record(handler, struct__HEAP, m.start, heap_constraints) logging.getLogger("basicmodel").setLevel(logging.DEBUG) v = api.validate_record(handler, res[0], heap_constraints) print("that was", m) import code code.interact(local=locals()) else: from haystack.reverse import api api.reverse_instances(handler) import code code.interact(local=locals())