在Python中读取原始RAM数据
我使用一个叫DumpIt的免费软件获取了内存数据的转储(http://www.downloadcrew.com/article/23854-dumpit)。这个软件把内存数据保存成一个原始文件,可以用十六进制编辑器来查看(http://www.downloadcrew.com/article/10814-hxd)。
我想知道,怎么用Python从这个原始文件中提取出在十六进制编辑器中能看到的字符串数据(见图片)?

比如说,我想从DumpIt生成的原始文件中提取出图片中红框里的字符串"http://www.downloadcrew.com/article/23854-dumpit"。
编辑
我试过用这段代码,但它一直卡住,什么都没发生。
#!/usr/bin/python
import binascii
filename = "LEMARC-20140401-181003.raw"
g = open("out","w")
str=""
with open(filename,"rb") as f:
for lines in f:
str+=lines
str = binascii.unhexlify(str)
f.close()
g.write(str)
g.close
1 个回答
2
在Python2中
"437c2123".decode('hex')
'C|!#'
在Python3中(也适用于Python2,但对于版本低于2.6的,你不能在字符串前加b这个前缀)
import binascii
binascii.unhexlify(b"437c2123")
b'C|!#'
所以在你的情况下,先把整个十六进制字符串解码成ascii格式,然后你可以用正则表达式或者自己写的解析函数来提取网址