Example #1
0
def get_memory_map():
    rv = rpc.GetMemoryMapResult()
    mm = api.MEMMAP()
    mm.count = 0
    mm.page = None
    if not api.DbgMemMap(mm):
        return rv

    arr = api.MEMPAGEArray.frompointer(api.void_to_MEMPAGE(mm.page))
    for i in xrange(mm.count):
        info = arr[i]
        mbi = info.mbi
        mi = rv.memories.add()

        ba = long(mbi.BaseAddress)
        module_name = ''
        mod_name = scriptapi.Module.NameFromAddr(ba)
        if mod_name:
            module_name = str(mod_name).replace(
                '\0', '')  # ("'%s'" % module.name) if module else ''
        mi.access = int(mbi.Protect)
        mi.base = int(mbi.BaseAddress)
        mi.name = str(module_name)
        mi.size = int(mbi.RegionSize)
    api.BridgeFree(mm.page)
    return rv
Example #2
0
def get_memory_map():
    api.Listmemory()
    t = api.pluginvalue_to_t_table(api.Plugingetvalue(api.VAL_MEMORY))
    rv = rpc.GetMemoryMapResult()

    for i in xrange(t.data.n):
        mi = rv.memories.add()
        m = api.void_to_t_memory(api.Getsortedbyselection(t.data, i))
        module = api.Findmodule(m.base)
        module_name = ("'%s'" % module.name) if module else ''
        mi.access = m.access
        mi.base = m.base
        mi.name = str(module_name)
        mi.size = m.size
        
    return rv
Example #3
0
def get_memory_map():
    # import labeless.rdebug
    api.Listmemory()
    t = api.cvar.memory
    rv = rpc.GetMemoryMapResult()

    for i in xrange(t.sorted.n):
        mi = rv.memories.add()
        m = api.void_to_t_memory(api.Getsortedbyselection(t.sorted, i))
        module = api.Findmodule(m.base)
        module_name = ("'%s'" % module.modname) if module else ''
        mi.access = m.access
        mi.base = m.base
        mi.name = str(module_name)
        mi.size = m.size

    return rv