[go: up one dir, main page]

Menu

[r33]: / old / virt2phys.py  Maximize  Restore  History

Download this file

22 lines (15 with data), 582 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
import sys,struct
memdump = open(sys.argv[1])
pdb_off = int(sys.argv[2],0)
virt_addr = int(sys.argv[3],0)
pd_offset = ((virt_addr & 0xFFC00000) >> 22)*4
pt_offset = ((virt_addr & 0x003FF000) >> 12)*4
b_offset = (virt_addr & 0x00000FFF)
memdump.seek(pdb_off + pd_offset)
pdemember = struct.unpack('<L', memdump.read(4))[0]
pt_off = ((pdemember & 0xFFFFF000) >> 12)*0x1000
memdump.seek(pt_off + pt_offset)
ptemember = struct.unpack('<L', memdump.read(4))[0]
phys_addr = ((ptemember & 0xFFFFF000) >> 12)*0x1000
print "Physical address: 0x%X" % phys_addr