Wanted: Python module allowing direct access to raw sectors of harddrives (MFT, boot sector, etc.) i

J

jepler

I took the advice from this web page:
http://support.microsoft.com/kb/q100027/
(I don't know how this extends to floppies, and the 9x family of OSes isn't
listed in "applies to", so this may not help your case)

Here, I open "physical drive 0" and see that the magic number indicates a valid
boot record. I believe it is the MBR.
f = open('\\\\.\\PhysicalDrive0', 'rb')
f.read(512)[-2:]
'U\xaa' # that is, hex 55 AA

I don't know much about low-level filesystem or partition details--I got the
tidbit about the 55 AA magic number from
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/sles9/adminguide-sles9/ch08.html

Jeff

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFDSut+Jd01MZaTXX0RAj7hAKCWr19nOx/wK0nUVJN1jjfUjBbVnQCfUnhd
tY09o+WnHwALynIt5PCN7F0=
=Jf1D
-----END PGP SIGNATURE-----
 
S

sam

The following site contains my routines to access information from the
Microsoft SCSIPASSTHROUGH layer under windows. These routines allow you
to access the storage devices mounted under windows using SCSI
commands. The dll that I provide will work with Python 2.3

http://starship.python.net/crew/samschul/

Sam Schulenburg

Claudio said:
Thank you Jeff very much for your quick reply.
It saved me really much time of digging in the wrong direction.

Ok, I had found this page myself during Googling, but I have missed just
to try to use the described way of addressing physical devices with file
opening in Python.
It works as expected with harddrives so you are right that you are getting
the MBR with the proposed code.

After some not always happy end adventures with Python
scripting I am impressed by the power of the concept behind
the language once again.

Claudio
(I don't know how this extends to floppies, and the 9x family of OSes isn't
listed in "applies to", so this may not help your case)
Here, I open "physical drive 0" and see that the magic number indicates a valid
boot record. I believe it is the MBR.
f = open('\\\\.\\PhysicalDrive0', 'rb')
f.read(512)[-2:]
'U\xaa' # that is, hex 55 AA
I don't know much about low-level filesystem or partition details--I got the
tidbit about the 55 AA magic number from
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/sles9/adminguide-sles9/ch08.ht ml
Jeff
<[email protected]> schrieb im Newsbeitrag
news:[email protected]...
 
C

Claudio Grondi

Googling for keywords like
"direct access sector harddrive Python module Windows"
seems to give no useful results.

Any hints(best if cross-platform)?

Claudio
 
C

Claudio Grondi

Thank you Jeff very much for your quick reply.
It saved me really much time of digging in the wrong direction.

Ok, I had found this page myself during Googling, but I have missed just
to try to use the described way of addressing physical devices with file
opening in Python.
It works as expected with harddrives so you are right that you are getting
the MBR with the proposed code.

After some not always happy end adventures with Python
scripting I am impressed by the power of the concept behind
the language once again.

Claudio
(I don't know how this extends to floppies, and the 9x family of OSes isn't
listed in "applies to", so this may not help your case)
Here, I open "physical drive 0" and see that the magic number indicates a valid
boot record. I believe it is the MBR.
f = open('\\\\.\\PhysicalDrive0', 'rb')
f.read(512)[-2:]
'U\xaa' # that is, hex 55 AA
I don't know much about low-level filesystem or partition details--I got the
tidbit about the 55 AA magic number from
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/sles9/adminguide-sles9/ch08.ht ml
Jeff
<[email protected]> schrieb im Newsbeitrag
news:[email protected]...
 
C

Claudio Grondi

Thank you for your reply, even if currently not
that interesting for me because after the first
CD writer for IDE were available I stopped to
use SCSI and didn't come back to it since then.

Does the Python open() command not work the
same way for SCSI drives as for IDE or USB
drives (I can't try it myself, because of above)?

Claudio
P.S. for those who are interested I have uploaded a
Python script I wrote for myself to have a reference to
this subject to:
http://people.freenet.de/AiTI-IT/Python/HowTo_AccessRawSectorsOfPhysicalDrives.py
:)

sam said:
The following site contains my routines to access information from the
Microsoft SCSIPASSTHROUGH layer under windows. These routines allow you
to access the storage devices mounted under windows using SCSI
commands. The dll that I provide will work with Python 2.3

http://starship.python.net/crew/samschul/

Sam Schulenburg

Claudio said:
Thank you Jeff very much for your quick reply.
It saved me really much time of digging in the wrong direction.

I took the advice from this web page:
http://support.microsoft.com/kb/q100027/
Ok, I had found this page myself during Googling, but I have missed just
to try to use the described way of addressing physical devices with file
opening in Python.
It works as expected with harddrives so you are right that you are getting
the MBR with the proposed code.

After some not always happy end adventures with Python
scripting I am impressed by the power of the concept behind
the language once again.

Claudio
(I don't know how this extends to floppies, and the 9x family of OSes isn't
listed in "applies to", so this may not help your case)
Here, I open "physical drive 0" and see that the magic number
indicates a
valid
boot record. I believe it is the MBR.
f = open('\\\\.\\PhysicalDrive0', 'rb')
f.read(512)[-2:]
'U\xaa' # that is, hex 55 AA
I don't know much about low-level filesystem or partition details--I
got
the
tidbit about the 55 AA magic number from
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/sles9/adminguide-sles9/ch08.ht
ml
Jeff
<[email protected]> schrieb im Newsbeitrag
news:[email protected]...
 
G

Grant Edwards

Googling for keywords like
"direct access sector harddrive Python module Windows"
seems to give no useful results.

Any hints(best if cross-platform)?

Claudio
 
S

sam

The main use of my SCSI routines,is that by using the SCSIPASSTHROUGH
layer under Windows gives the user absolute control of the storage
device. For example copying data from and IDE drive to a SCSI drive
becomes transparent using SCSI commands. I.e Logical block 0 remains
consistant. I had an PHD clam that using fopen(),and fread(),along with
fwrite() with an offset of 0 would always get you sector zero,head
zero on a drive. I was able to prove that this was not the case. When
using the SCSIPASSTHROUGH layer LBA 0 will always return the first user
accessable sector. Using Python open() behaves the same as the C
functions,thus you would have the same problem.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,125
Latest member
VinayKumar Nevatia_
Top