2017-04-10 97 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上的訪客帳戶具有更多的靈活性。假設整個驅動器未加密。 –