状況:ハードディスク(特にWindows)を読み込み、16進文字列を互いに比較するPythonプログラムを書いています。バイトレベルでハードディスクを読む
問題:そうすることは可能ですか?私が探している解決策は速くなければならないので、dd
は適していません。
私はLinuxシステムでopen('/dev/sdX', 'r')
を実行できることを理解しています。 「Win32ベースのアプリケーション」でopen('\\.\PhysicalDriveX', 'r')
またはopen('\\.\C:', 'r')
を使用することを示唆する別の質問が見つかりました。
質問:上記のコマンドは、通常のWindowsマシン(64ビット)でも動作しますか?
その他の情報:私は、追加の機能を備えたPythonのバリエーションであるePythonを使用しています。
Windowsの10:
'\\。\ PhysicalDrive [N]'はディスクです。 '\\。\ C:'はボリューム(通常は単一パーティション)です。それらを直接読み込むには管理者権限が必要です。バイナリモード、つまり "" rb "'で開く必要があります。 – eryksun
ボリュームをNTFSディレクトリにマウントすることもできます。このようなボリュームをWindows APIから開くには、ボリュームGUID名が必要です。このGUID名は、 'GetVolumeNameForVolumeMountPoint'を介してドライブ文字またはフォルダマウントポイントから取得できます。この機能を使用するには、マウントポイントパスにバックスラッシュが必要です。削除する必要があるバックスラッシュを含むGUIDボリューム名を返します。 – eryksun