Seite 2 von 3

Verfasst: 11.08.2008 20:28
von xperience2003
jo, so gehts auch, damit is die datei ueberschrieben
zwar nicht komplett geloescht..braucht man dann aber auch nich mehr

Verfasst: 11.08.2008 20:32
von Kaeru Gaman
wenn ich eine datei mit nullen überschreibe, auch mehrfach,
dann verändere ich nicht den schatten der alten information,
sondern flache den nur ab.

wenn ich hingegen zufallswerte drüberschreibe,
ändere ich mehrfach das aufgebrachte magnetische potential,
das sollte bei mehrfacher anwendung den alten schatten unleserlich machen.

Verfasst: 11.08.2008 20:45
von ts-soft
Wenn ich die Datei öffne und überschreibe, überschreibe ich nur den Buffer,
beim schliessen wird dann aber ganz woanders geschrieben, als dort wo die
Datei beim öffnen war. Selbst nach 100x überschreiben wird sich das orginal
noch unangetastet auf der Platte befinden, nur nicht mehr per Filetable
erreichbar, physicalisch aber vorhanden.

Verfasst: 11.08.2008 20:48
von Kaeru Gaman
ok, das war jetzt meine fehlannahme.
man muss natürlich an die physikalisch selbe stelle herankommen.

trotzdem: zufallszahlen sind wirkungsvoller als nullen.

Verfasst: 11.08.2008 20:58
von Little John
ts-soft hat geschrieben:Wenn ich die Datei öffne und überschreibe, überschreibe ich nur den Buffer,
beim schliessen wird dann aber ganz woanders geschrieben, als dort wo die
Datei beim öffnen war.
Die Einzelheiten hängen ja auch vom verwendeten Betriebssystem ab. Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx

Gruß, Little John

Verfasst: 11.08.2008 21:18
von DrNo
Nochmal zurück zu meiner Frage...falls ihr die durch die vielen posts übersehn habt.

Mir geht es im Moment nur darum wie ich die Schleife stoppe wenn die Datei voll ist...also damit meine ich ihre originalgröße wieder hat.

Little John hat geschrieben:Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx
Das funzt bei mir garnich
:?

Verfasst: 11.08.2008 21:25
von ts-soft
EOF(#FILE)
Beispiel befindet sich in der Hilfe unter ReadFile

Verfasst: 11.08.2008 21:27
von Kaeru Gaman
vor dem schreiben mit Lof(#File) die Länge ermitteln,
dann weisst du, wieviel bytes du insgesamt schreiben musst.

Verfasst: 11.08.2008 23:19
von Little John
DrNo hat geschrieben:
Little John hat geschrieben:Deshalb emfehle ich wenn's wirklich wichtig ist für solche Dinge Tools von Leuten, von denen bekannt ist dass sie sich damit gut auskennen, für Windows z.B. http://technet.microsoft.com/en-us/sysi ... 97443.aspx
Das funzt bei mir garnich
:?
Sysinternals hat geschrieben:SDelete works on Windows 95, 98, NT 4.0 and Win2K.
"Sysinternals" war halt eine Quelle, die ich gerade so aus dem Kopf wusste. Es gibt andere gute Freeware für andere Windows-Versionen.
DrNo hat geschrieben:Nochmal zurück zu meiner Frage...falls ihr die durch die vielen posts übersehn habt.

Mir geht es im Moment nur darum wie ich die Schleife stoppe wenn die Datei voll ist...also damit meine ich ihre originalgröße wieder hat.
Wie KG schon schrieb: Erst die Länge ermitteln, und dann genau so viele Bytes schreiben. Aber damit ist die Datei nicht wirklich sicher gelöscht -- was ja Deine Ursprungsfrage war.

Gruß, Little John

Verfasst: 12.08.2008 18:07
von DrNo
Ok nach einigem Rumprobieren hab ich es schliesslich mit Variablen gemacht. er ermittelt die größe als Variable und tut bei jedem Überschreiben +2 (WriteWord = 2Bytes) hinzuzählen bis die größe der Variable erreicht ist. So klappt es bei mir auch und bei Textdateien ist dann auch der exakt beschriebene bereich überschrieben. Was haltet ihr von dem Code?

Code: Alles auswählen

file$ = OpenFileRequester("Datei auswählen...","","Alle Dateien (*.*)",0)
  If file$
    If ReadFile(0, file$) 
      length = Lof(0)                           
      *MemoryID = AllocateMemory(length)         
      If *MemoryID
        bytes = ReadData(0, *MemoryID, length)   ;
      EndIf
      CloseFile(0)
      If OpenFile(0, file$)
        Repeat
         WriteWord(0, Random($FFFF))
         a + 2 
        Until a = bytes
         CloseFile(0)
         MessageRequester("Info", "Datei erfolgreich überschrieben!")
      EndIf
    EndIf
  EndIf
Ist warscheinlich noch verbesserungsfähig.
Mit dem Anzahl der überschreibungen werde ich es wie oben mit Variablen machen bis der Wert des SpinGadgets erreicht ist.

grüße DrNo <)