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)
    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)
Exemple #3
0
            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())



Exemple #4
0
                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())