Ejemplo n.º 1
0
    def test_pred(self):
        addr = 0xc32628
        addr = 0xc32060
        _record = api.get_record_at_address(self.memory_handler, addr)
        self.assertEqual(_record.address, addr)
        #self.assertEqual(len(_record.get_fields()), 3)
        print _record.to_string()

        pred = api.get_record_predecessors(self.memory_handler, _record)
        print 'pred', pred
        for p in pred:
            print p.to_string()
        pass
Ejemplo n.º 2
0
    def test_pred(self):
        addr = 0xc32628
        addr = 0xc32060
        _record = api.get_record_at_address(self.memory_handler, addr)
        self.assertEqual(_record.address, addr)
        #self.assertEqual(len(_record.get_fields()), 3)
        print _record.to_string()

        pred = api.get_record_predecessors(self.memory_handler, _record)
        print 'pred', pred
        for p in pred:
            print p.to_string()
        pass
Ejemplo n.º 3
0
 def test_pred(self):
     addr = 0xc32628
     addr = 0xc32060
     process_context = self.memory_handler.get_reverse_context()
     heap_context = process_context.get_context_for_address(addr)
     # ordered allocation
     allocs = heap_context.list_allocations_addresses()
     self.assertEqual(allocs[0], 0xc30688)
     _record = api.get_record_at_address(self.memory_handler, addr)
     self.assertEqual(_record.address, addr)
     #self.assertEqual(len(_record.get_fields()), 3)
     print(_record.to_string())
     # FIXME - process must be reversed. Graph must be generated.
     pred = api.get_record_predecessors(self.memory_handler, _record)
     print('pred', pred)
     for p in pred:
         print(p.to_string())
     pass
Ejemplo n.º 4
0
 def test_pred(self):
     addr = 0xc32628
     addr = 0xc32060
     process_context = self.memory_handler.get_reverse_context()
     heap_context = process_context.get_context_for_address(addr)
     # ordered allocation
     allocs = heap_context.list_allocations_addresses()
     self.assertEqual(allocs[0], 0xc30688)
     _record = api.get_record_at_address(self.memory_handler, addr)
     self.assertEqual(_record.address, addr)
     #self.assertEqual(len(_record.get_fields()), 3)
     print _record.to_string()
     # FIXME - process must be reversed. Graph must be generated.
     pred = api.get_record_predecessors(self.memory_handler, _record)
     print 'pred', pred
     for p in pred:
         print p.to_string()
     pass
Ejemplo n.º 5
0
def show_predecessors_cmdline(args):
    """
    Show the predecessors that point to a record at a particular address.
    :param opt:
    :return:
    """
    memory_handler = cli.get_memory_handler(args)
    process_context = memory_handler.get_reverse_context()
    ctx = process_context.get_context_for_address(args.address)
    try:
        child_record = ctx.get_record_at_address(args.address)
    except ValueError as e:
        print None
        return

    records = api.get_record_predecessors(memory_handler, child_record)
    if len(records) == 0:
        print None
    else:
        for p_record in records:
            print '#0x%x\n%s\n' % (p_record.address, p_record.to_string())
    return