Wir wollen jetzt einen Block auslesen und ihn dann mit anderen Daten überschreiben. Wir können das vorherige Programm dazu komplett übernehmen und es werden lediglich einige Erweiterungen fällig:
Zunächst brauchen wir ein Array mit 16 Byte (bWrite[16]), das wir in der Setup-Funktion mit den Werten "0x88" füllen.
Außerdem ändern wir den zu lesen Block von 0 auf 4 (also den 1. Block im 2. Sektor). Für diesen Sektor ist der Trailer-Block (Block 7) verantwortlich. Deshalb ändern wir die Werte für "bBlock" und "bTrailerBlock" entsprechend.
Im Hauptprogramm löschen wir zwischen der Authentifikation und dem Halt-Befehl den Code und ersetzen ihn durch den folgenden Block:
Der Ablauf ist nahezu selbsterklärend:
Schauen wir einmal nach, ob es auch wirklich so funktoniert, wie wir das geplant hatten und lassen das Programm laufen:
Das sieht gut aus! Die 2 Byte hinter den Daten am Ende sind übrigens Prüfsummen, mit denen wir eine fehlerfreie Übertragung sichern können.
Da der Trailer-Block im Grunde nichts anderes ist als ein Datenblock können Sie auch diese Blöcke in der gleichen Art und Weise beschreiben und somit den Schlüssel für KEY_A oder KEY_B sowie die Access-Bits ändern.