Einzelne Bits auf Festplatte schreiben/lesen?


26.07.2021, 19:24

PS: Ich kann zwar auch Windows benutzen, am liebsten wäre mir aber eine Methode, für Linux.

4 Antworten

einzelne Bits an beliebiger Position der Festplatte oder eines externen Speichermediums auszulesen und zu schreiben

In Linux kannst du Festplatten als Devices (in /dev) adressieren und darin tatsächlich einzelne Bytes (nicht Bits, das gibt das Interface nicht her) lesen und schreiben. Auch am Partitions- und Dateisystem vorbei.

Die Frage ist dann, was du mit "beliebiger" Position meinst - wie willst du das ausdrücken?

renau 
Fragesteller
 26.07.2021, 19:46
Die Frage ist dann, was du mit "beliebiger" Position meinst - wie willst du das ausdrücken?

Ich meinte vor allem so etwas wie "am Partitions- und Dateisystem vorbei". Also selber entscheiden, an welcher Position, statt, dass einem die Entscheidung vom Betriebssystem abgenommen wird.

einzelne Bytes (nicht Bits, das gibt das Interface nicht her)

Die Bits dürften davon ja auch ... beeinflusst werden. Vielen Dank also. Könntest Du mir nur vielleicht noch ein kleines Bisschen weiter helfen? Wenn ich z.B. /dev/bus/usb/ öffne, sind da vier Ordner mit je 1, 3 oder 4 Dateien darin. Versuche ich aber, eine der Dateien zu öffnen, wird mir gesagt, es sei kein Programm zum öffnen dieser Datei bekannt...

0
alfredo153  26.07.2021, 19:53
@renau

Warum /dev/usb/bus? Willst du USB mit denen sprechen? Du musst dir schon überlegen, an welcher Schicht du ansetzt. Linux gibt dir für die erkannten Speichergeräte Block Devices, die bekommst du anschaulich mit lsblk aufgelistet. Dann kannst du auf das jeweilige Device schreiben. Klarerweise nur als root.

1
renau 
Fragesteller
 26.07.2021, 20:20
@alfredo153

Ah, vielen Dank. Ich hatte einfahc keine Ahnung, wie diese Devices aufgebaut sind.

0
renau 
Fragesteller
 26.07.2021, 20:34
@alfredo153

Aber wie kann ich darauf schreiben? Im Dateimanager wird es mir als Unbekannter Dateityp angezeigt.

0

Gar nicht. HDDs arbeiten blockorientiert, insofern mußt Du immer ganze Blöcke (Sektoren) lesen oder schreiben. Ein Bitmanipulation erfordert also ein Read+Änderung+Write.

Im Falle von Linux ist das OS so freundlich die Blockgeräte als Dateien bereitzustellen, sodaß Du mit normalen File I/O darauf arbeiten kannst. D.h. Du kannst tatsächlich ein einzelnes Byte lesen und schreiben, ohne daß Du Dich um die notwendigen Ops im Hintergrund kümmern mußt.

guterfrager401  06.10.2021, 18:12

Müsste das Byte dazu auch ersteinmal gelöscht werden?

0

Der Zugriff auf eine Festplatte ist nur Byte-weise möglich, einzelne Bits kann man nicht adressieren.

Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓
renau 
Fragesteller
 26.07.2021, 19:46

Ja, OK, vielleicht hätte ich besser bytes schreiben sollen; das reicht mir eigentlich auch schon.

0
guterfrager401  26.07.2021, 20:23

Naja, aber bytes sind ja bekanntlich Bits, und wenn man den Speicherzelleninhalt kennt, kann man auch gezielt einzelne Bits verändern! Müsste man dann ersteinmal umrechnen.

1
guterfrager401  06.10.2021, 18:16
@guterfrager401

Und man selbst -als Programmierer- oder auch die Syntax müsste den sich neu ergebenden Zahlenwert kennen, ihn also errechnen. Möchte man bspw. aus der Bitfolge 01010101 01010111 machen, müsste man den Wert ins Dezimalsystem umrechnen, hier 85 und in 87 umändern.

0