本文整理汇总了Python中memory.Memory.symbol方法的典型用法代码示例。如果您正苦于以下问题:Python Memory.symbol方法的具体用法?Python Memory.symbol怎么用?Python Memory.symbol使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类memory.Memory
的用法示例。
在下文中一共展示了Memory.symbol方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from memory import Memory [as 别名]
# 或者: from memory.Memory import symbol [as 别名]
class Draugr :
def __init__(self, memory, mmap) :
self.m = Memory(memory, "r", mmap)
self.b = None
# pgd = unpack("<L", self.m.read(lpid[mypid].mm + 36, 4))[0]
# print hex(lpid[mypid].mm), hex(pgd)
# print hex(self.m.pgd_to_pte(0xde101000)) #pgd))
# print hex(self.m.pgd_to_pte(pgd))
def page(self, pid, addr, size=4096) :
if self.b == None :
self.b = BuildTaskStruct(self.m)
self.b.find_offsets()
lpid = DraugrLinkedPid(self.m, self.b).runHash()
print lpid[pid]
pgd = unpack("<L", self.m.read(lpid[pid].mm + 36, 4))[0]
print hex(pgd)
page = self.m.page(pgd, addr)
print "PAGE @ 0x%lx" % page
print self.m.dump(page, size, 'd')
def lprocesses(self) :
if self.b == None :
self.b = BuildTaskStruct(self.m)
self.b.find_offsets()
lpid = DraugrLinkedPid(self.m, self.b)
for i in lpid.run() :
print i
def bprocesses(self, start=0xc0000000) :
if self.b == None :
self.b = BuildTaskStruct(self.m)
self.b.find_offsets()
l = []
upid = DraugrUnknownPid(self.m, self.b, start)
for i in upid.run() :
l.append(i)
print
for x in l :
print x
def symbol(self, name) :
if name[0] == 'd' :
addr = self.m.symbol(name[2:])
elif name[0] == 'x' :
addr = self.m.symbolXML(name[2:])
elif name[0] == 's' :
addr = self.m.syscall(int(name[2:]))
else :
raise("Ooops")
print "%s @ 0x%lx" % (name[2:], addr)
def disasm(self, addr, size) :
for i in self.m.disasm(addr, size) :
print "0x%08x (%02x) %-20s %s" % (i.offset, i.size, i.instructionHex, str(i.mnemonic) + " " + str(i.operands))
def dump(self, addr, size) :
print self.m.dump(addr, size, 'h')