为了账号安全,请及时绑定邮箱和手机立即绑定

Python磁盘映像

Python磁盘映像

素胚勾勒不出你 2021-03-14 16:19:31
尝试在python中制作用于磁盘映像的脚本(例如.dd格式)。最初是作为获得另一个十六进制调试器的项目而开始的,还对尝试从驱动器中获取原始数据有更多的兴趣。这就变成了想要能够首先对驱动器进行映像的方法。无论如何,我已经逛了大约一个星期左右,发现从较小的驱动器上的驱动器中获取信息的最佳方式似乎是这样的:with file("/dev/sda") as f: i=file("~/imagingtest.dd", "wb") i.write(f.read(SIZE))size是磁盘大小。问题是,这似乎是一个众所周知的问题,尝试使用大磁盘显示为(即使在我的情况下,总大小为250059350016字节):“ OverflowError:Python int太大,无法转换为C long”有没有更合适的方法来解决此问题?由于它对于小型闪存驱动器工作正常,但是尝试对驱动器进行映像失败。我已经看到提到可能仅按扇区数(在我的情况下为488397168)按扇区大小(512)进行迭代,但是想确切地验证如何以一种可行的方式执行此操作。在此先感谢您提供的任何帮助,对于您无意中发现的任何不便,我们深表歉意。
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

是的,这就是您应该这样做的方式。尽管您可以根据需要大于扇区大小。


with open("/dev/sda",'rb') as f:

    with open("~/imagingtest.dd", "wb") as i:

        while True:

            if i.write(f.read(512)) == 0:

                break


查看完整回答
反对 回复 2021-03-31
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信