当前位置: 首页>>代码示例>>Python>>正文


Python Memory.page方法代码示例

本文整理汇总了Python中memory.Memory.page方法的典型用法代码示例。如果您正苦于以下问题:Python Memory.page方法的具体用法?Python Memory.page怎么用?Python Memory.page使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在memory.Memory的用法示例。


在下文中一共展示了Memory.page方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from memory import Memory [as 别名]
# 或者: from memory.Memory import page [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')
开发者ID:AjayMashi,项目名称:draugr,代码行数:65,代码来源:draugr.py


注:本文中的memory.Memory.page方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。