Situation: J'écris un programme python pour lire un disque dur (en particulier Windows) et comparer les chaînes hexagonales entre elles.Lecture du disque dur au niveau octet
Problème: Est-il possible de le faire? La solution que je recherche doit être rapide, donc dd
est inadapté. Je comprends que sur les systèmes Linux, nous pouvons faire open('/dev/sdX', 'r')
. J'ai trouvé une autre question qui suggère que j'utilise open('\\.\PhysicalDriveX', 'r')
ou open('\\.\C:', 'r')
sur "applications Win32". Question: Est-ce que la commande ci-dessus fonctionne également sur les machines Windows normales (64 bits)?
Informations supplémentaires: J'utilise ePython, une variante de Python, avec des fonctionnalités supplémentaires.
'\\. \ PhysicalDrive [N]' est un disque. '\\. \ C:' est un volume (généralement une seule partition). Les lire directement nécessite des droits d'administrateur, et ils devraient être ouverts en mode binaire, c'est-à-dire '' rb ''. – eryksun
Les volumes peuvent également être montés dans des répertoires NTFS. L'ouverture d'un tel volume à partir de l'API Windows nécessite le nom de GUID du volume, que vous pouvez obtenir à partir d'une lettre de lecteur ou d'un point de montage de dossier via 'GetVolumeNameForVolumeMountPoint'. Cette fonction nécessite une barre oblique inverse à la fin du chemin du point de montage. Il renvoie le nom de volume GUID avec une barre oblique inverse de fin, que vous devrez supprimer. – eryksun