FAT zerstören

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
purebas
Beiträge: 127
Registriert: 11.03.2008 23:59
Wohnort: München

FAT zerstören

Beitrag von purebas »

Ich möchte gerne ein paar Tests einer Software durchführen.
Die Software kopiert Dateien von einem USB-Stick auf die Festplatte.
In der Praxis kommt es einmal in 100 Fällen vor, dass die FAT-Logik
zerstört wurde. Wahrscheinlich durch Schreibzugriffe während des
Abziehens des USB-Sticks vom Quellsystem.

Die zu überprüfende Software soll nach einem Kopierfehler automatisch
eine Korrektur des Dateisystems vornehmen. Meine Frage dazu:

Was kann ich tun, um (beispielsweise mittels HEX-Editor) das
FAT-Dateisystem eines USB-Sticks zu "zerstören", sodass ich danach
die Reparaturfunktion der Software gezielt testen kann?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: FAT zerstören

Beitrag von DarkDragon »

Hallo,

Also bei FAT wird erstmal nichts gelöscht, sondern nur als gelöscht markiert. Desshalb überschreib einfach mal eine FAT. Aber deren Kopie musst du stehen lassen, sonst wirds wohl nichts. Wenn das Programm nur auf Dateiebene arbeitet, dann markier einfach eine Datei als gelöscht. Das Programm sollte die Datei dir dann wieder herstellen können.

http://members.inode.at/anton.zechner/a ... at.htm#DIR
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Re: FAT zerstören

Beitrag von zigapeda »

Soweit ich weiss gibt es keine software mit der du direkt in der
FAT editieren kannst... Ich kenn das programm Rawwrite mit dem
kann man disketten komplett (also auch den teil von der FAT
beschreiben) ob das allerdings fuer USB sticks geeignet ist weiss
ich nicht. Da koenntest du dir dann eine fehlerhafte FAT im hex
editor erstellen und die jedes mal neu schreiben und dann testen.

Was mir jetzt noch nicht so klar geworden ist, willst du diese
software selber entwickeln oder traust du dem hersteller nicht und
willst sie nur testen? Wenn du sie selber entwickeln willst kannst du
ja erstmal eine software schreiben die da ein bischen drin rumpfuscht
um mit den lese und schreib operationen besser vertraut zu werden.

Ansonsten hier mal der link zu rawwrite, vll kannst du damit was
anfangen: http://www.chrysocome.net/rawwrite
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: FAT zerstören

Beitrag von DarkDragon »

zigapeda hat geschrieben:Soweit ich weiss gibt es keine software mit der du direkt in der
FAT editieren kannst... Ich kenn das programm Rawwrite mit dem
kann man disketten komplett (also auch den teil von der FAT
beschreiben) ob das allerdings fuer USB sticks geeignet ist weiss
ich nicht. Da koenntest du dir dann eine fehlerhafte FAT im hex
editor erstellen und die jedes mal neu schreiben und dann testen.
:bounce: Das ist so einfach wie den Garten umgraben. Lange vor deiner Zeit gab es hier im Forum mal ein Beispiel von Rings. Das dürfte sogar noch im CodeArchiv liegen:
http://www.purearea.net/pb/CodeArchiv/F ... D+Files.pb

Man erkennt hier deutlich, wie man direkt aufs Laufwerk zugreifen kann:

Code: Alles auswählen

"\\.\"+Chr(EM-36)+":"
So beschreib ich meine Disketten mit einem Image (Vorsicht! Der Inhalt des Laufwerks geht verloren und ich garantiere für nichts!):

Code: Alles auswählen

; Folgendes anpassen:
Filename.s="\\.\A:"

If ReadFile(0, "C:\Users\Daniel\Downloads\f6flpy3270\f6flpy32\F32.IMA")
  
  Size = Lof(0)
  If Size > 0
    *Mem = AllocateMemory(Size)
    If *Mem
      ReadData(0, *Mem, Size)
    Else
      CloseFile(0)
      Goto Exit
    EndIf
  Else
    CloseFile(0)
    Goto Exit
  EndIf
  
  CloseFile(0)
Else
  Debug "Error"
  Goto Exit
EndIf

; Diskette beschreiben
If OpenFile(0, Filename)
  WriteData(0, *Mem, Size)
  
  CloseFile(0)
Else
  Debug "Error"
EndIf

Exit:
If *Mem
  FreeMemory(*Mem)
EndIf
End
Da braucht man jetzt nicht alles neu beschreiben.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
purebas
Beiträge: 127
Registriert: 11.03.2008 23:59
Wohnort: München

Re: FAT zerstören

Beitrag von purebas »

zigapeda hat geschrieben:Was mir jetzt noch nicht so klar geworden ist, willst du diese
software selber entwickeln oder traust du dem hersteller nicht und
willst sie nur testen?
Ich vertraue dem Hersteller und möchte die Produktentwicklung als Tester begleiten. :mrgreen:
zigapeda hat geschrieben:Soweit ich weiss gibt es keine software mit der du direkt in der
FAT editieren kannst
Doch natürlich! Ich benutze den HEX-Editor "WinHex". Ich denke auch, dass dies viele HEX-Editoren können. Um an die FAT ranzukommen, könnte man ja auch einfach nur mit PureBasic das Laufwerk "\\C:\" öffnen und auslesen. Dann hast Du die FAT im ersten Teil der eingelesenen Daten. Siehe auch Beitrag von @DarkDragon.

@DarkDragon
Die Imagebespielung ist gut. Nur wie zerstöre ich gezielt die FAT, sodass gezielt bestimmte Datei- oder Ordnereinträge logisch zerstört werden.

Durch wildes reinhacken in die FAT (mit WinHex), habe ich es auch schon geschafft, die FAT-Logik zu zerstören. Jedoch wäre es super, wenn ich wüsste welcher Eintrag manipuliert werden müsste, um gezielt die Zerstörung einer Datei (oder eines Ordners) zu verursachen. So müsste ich nicht auf gut Glück rumhacken.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: FAT zerstören

Beitrag von NicTheQuick »

Dann müsstest du den Aufbau der FAT studieren. Vielleicht reichen ja schon die Angaben bei Wikipedia (oder englisch)
Antworten