在Python中读取原始RAM数据

1 投票
1 回答
2169 浏览
提问于 2025-04-18 00:55

我使用一个叫DumpIt的免费软件获取了内存数据的转储(http://www.downloadcrew.com/article/23854-dumpit)。这个软件把内存数据保存成一个原始文件,可以用十六进制编辑器来查看(http://www.downloadcrew.com/article/10814-hxd)。

我想知道,怎么用Python从这个原始文件中提取出在十六进制编辑器中能看到的字符串数据(见图片)?

snapshot of Hex editor

比如说,我想从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格式,然后你可以用正则表达式或者自己写的解析函数来提取网址

撰写回答