2017-04-10 58 views
0

情况:我正在编写一个python程序来读取硬盘(特别是Windows)并将十六进制字符串相互比较。在字节级别读取硬盘

问题:是否可以这样做?我正在寻找的解决方案需要很快,因此dd是不合适的。

我知道在Linux系统上我们可以做open('/dev/sdX', 'r')。我发现另一个问题,表明我在“基于Win32的应用程序”上使用open('\\.\PhysicalDriveX', 'r')open('\\.\C:', 'r')

问题:上述命令是否也可以在普通Windows机器上运行(64位)?

附加信息:我正在使用ePython,它是Python的变体,具有附加功能。

+1

'\\。\ PhysicalDrive [N]'是一个磁盘。 '\\。\ C:'是一个卷(通常是一个单独的分区)。直接读取它们需要管理员权限,并且应该以二进制模式打开,即“rb”。 – eryksun

+1

卷也可以挂载在NTFS目录中。从Windows API打开这样的卷需要使用卷GUID名称,您可以通过'GetVolumeNameForVolumeMountPoint'从驱动器盘符或文件夹挂载点获取该名称。该函数需要在挂载点路径上有尾随的反斜杠。它返回带有反斜杠的GUID卷名,您需要删除它。 – eryksun

回答

1

另一种做法是坚持使用内置的Linux子系统在Windows与Linux的方法:

的Windows 10:

猛砸-上的Ubuntu-上的Windows: https://msdn.microsoft.com/en-us/commandline/wsl/about

WINOWS 7:

实用工具和SDK的子系统的在Microsoft Windows 7和Windows Server基于UNIX的应用2008 R2 http://www.microsoft.com/en-us/download/details.aspx?id=2391

我已经使用了Windows 10 - 家庭版,Windows上的Bash-on-Ubuntu,它像一个魅力。

+0

但Windows上的Bash-on-Windows只在Windows 10上运行。我需要扫描的系统在Windows 7上(古代,我知道) –

+0

对不起,我正在添加更多需求...假设我没有管理权限在上述电脑上安装任何东西我的工作只是插入我的程序,它将运行并扫描系统 - 不多也不少。但我认为你可以留下你的文章 - 这可能对其他人非常有用。 –

+0

您是否考虑过创建一个带有Xubuntu(xcfe GUI)或Lubuntu(甚至更轻)的实时安装USB?它比Windows 7上的访客帐户具有更多的灵活性。假设整个驱动器未加密。 –