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
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
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