| Autor |
Beitrag |
mahi
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 23.03.05 23:58
Guten Tag!
Es soll Algorythmen geben, die Dateien 65 Mal überschreiben und dann löschen, sodass ein Widerherstellen garantiert ausgeschlossen ist. Kennt ihr eine solche Funktion, die dies realisiert?
Liebe Grüße, mahi
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Do 24.03.05 00:04
Eine Funktion nicht, aber die Vorgehensweise wird auf jeder zweiten Seite Sicherheitsseite beschrieben -> google
Afaik reicht übrigens ca. 10maliges überschreiben. Über google wirste auch finden mit was du überschreiben musst. Afaik einmal nur mit 0 dann nur mit 1 dann mit zufälligen daten usw.
Es gibt übrigens etliche Programme die sowas schon können. Auch hier im Forum in der Freewaresparte wurden schon mehrere vorgestellt. Evt. gibts sogar eins das Open Source ist.
Mit anderen worten, suche bemühen.
|
|
mahi 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 24.03.05 00:09
Schön, dass man hier so freundlich begrüßt wird.  Trotzdem danke für deine Antwort.
Ich habe bei Google gesucht und auch das Programm hier gefunden. Aber wenn ich sage, das sich es selbst programmieren möchte, dann bleibt es dabei.
Über Google finde ich garnichts, nur einen Post aus der Delphipraxis: den. Aber hab das mal durchgelesen und klingt net so arg sicher.
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Do 24.03.05 00:19
Gehts noch? Was war denn daran unfreundlich?
Und das du das Ding selber schreiben willst, woher soll ich das riechen?
Wenn du schreibst: "Ich habe da aus mysteriösen Quellen erfahren dass es unter umständen einen Algorythmus geben könnte der das kann". Das hört sich für mich so an, als wüsstest du nicht, dass diese Vorgehensweise schon sehr lange an jeder ecke benutzt wird.
Und wenn ich dich auf die Suche verweise dann hat das nichts damit zu tun das ich unfreundlich bin. Es bedeutet lediglich dass ich selbst nur wenig darüber weiss, mir aber sicher bin, dass durch suchen das Problem schnell gelöst ist, und warum sollte ich mir jetzt die mühe machen danach zu suchen? Kannst du das nicht selbst? Nein, kannst du nicht. Du redest mich lieber schwach an.
Hier ist übrigens der Grund warum ich dich auf die Suche verwiesen habe.
www.delphi-forum.de/...ht=dateien+l%F6schen
Suchbegriff: "Dateien löschen", Seite 1.
Da findest du sogar die "Wipe" Funktion von MathiasSimmack drin. Die kannst du genauso übernehmen, ohne einen Finger zu rühren
schönen abend noch.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Do 24.03.05 00:34
[OT]
Immer schön sachlich bleiben und lächeln -- Du hast die Tafel vergessen:  im DF!
[/OT]
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 24.03.05 02:27
wieso sollte es nötig sein 10 mal eine datei zu überschreiben ? soll dadurch der magnetismus der festplatte verwirrt werden ?
also meines wissens kann ein bit nur die zustände 1 und 0 haben. wird es einmal überschrieben, so bleibt es auch dabei.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Do 24.03.05 02:35
Nein, woran es liegt weiss ich auch nicht. Aber nimm dir mal irgendein Dateiwiederherstellungstool. Ich hab damals bei mir die dollsten Sachen wiederherstellen können (Filme die ich vor 2 Jahren mal auf dem Rechner hatte usw. )
Experten meine das eine Datei erst dann sicher weg ist, wenn sie nach dem oben beschriebenen Schema gelöscht wurde.
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 24.03.05 02:54
das datenrettungsprogramm kann nur daten von sektoren hernehmen, die NIE überschrieben wurden.
einfachste art der sicheren datenlöschung:
ne batchdatei die im loop ne grosse datei (z.b. pak3.pak von quake3  ) solange immer wieder unter anderem namen auf die festplatte kopiert, bis diese randvoll ist.
edit: natürlich muss man seine daten zuerst löschen
wer auf nummer sicher gehen will muss natürlich auch beide fat-tabellen löschen damit die dateinamensinformationen weg sind
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 03:40
retnyg hat folgendes geschrieben: |
wer auf nummer sicher gehen will muss natürlich auch beide fat-tabellen löschen damit die dateinamensinformationen weg sind |
Nö. Einfach in einen Dateinamen umbenennen mit einem Buchstaben. In der Fat tabelle steht dann: "_.xyz" und damit wird wohl niemand mehr was anfangen können.
|
|
mahi 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 24.03.05 12:37
Ich bitte um verzeihung Karlson, kam irgendwie so rüber.
Den Code habe ich auch gesehen, weiß aber nicht, ob er wirklich sicher ist, ich suche einen, wo man die Dateien 100% nicht wiederherstellen kann, ist dies bei dem Code der Fall?
@delfiphan: danke
Wo Luckie FAT anspricht, ich hätte gerne einen Code, der für FAT und NTFS diese Dateien löscht? Geht das nicht?
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 12:42
mahi hat folgendes geschrieben: | | Den Code habe ich auch gesehen, weiß aber nicht, ob er wirklich sicher ist, ich suche einen, wo man die Dateien 100% nicht wiederherstellen kann, ist dies bei dem Code der Fall? |
100% sicheren Code gibt es nicht. Für Normalanwender ist er aber ausreichend, weil diese damit nichts mehr wiederherstellen können. Datenlabore kriegen u.U. noch was raus, aber dafür war die Lösung, die Überschreibung noch mehr laufen zu lassen.
Die sicherste Methode ist die, die Festplatte mit Bezin zu übergießen, anzubrennen, abzuwarten, dann im nächsten Schmelzofen einzuschmelzen, nach dem Erkalten in kleinere Stücken zu zerlegen und diese Brocken auf der ganzen Welt zu verteilen. Nur so kann absolut keiner mehr die Daten wiederherstellen.  Es sei denn, du warst so leichtsinnig, die Orte mit den verbuddelten Bruchstücken auf einer Karte einzutragen. 
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 24.03.05 12:59
Es kommt ja auch immer auf die Verhältnismäßigkeit an. Wenn du z.B. eine Festplatte verkaufen willst, auf der nur Spielinstallationen drauf waren, dann reicht eine einfache Formatierung IMHO vollkommen aus. Zwar kann man diese dann durch frei erhältliche Software wiederherstellen, aber was solls...
Bei privaten Daten sollte man dann schon einen Shredder benutzen, der die Daten nach einem gewissen Schema mehrfach überschreibt. Dann kommt man nur mit etwas mehr Aufwand (Datenlabore) an die Daten.
Bei hochsensiblen Daten sollte man dann die Methode von MatthiasSimmack anwenden. Nur verbrennen reicht nämlich nicht aus. Auch aus ner angekokelten Platte kann man noch was rauslesen - das nötige Kleingeld vorausgesetzt.
_________________ We are, we were and will not be.
|
|
mahi 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 24.03.05 13:13
Gausi hat folgendes geschrieben: | | Bei hochsensiblen Daten sollte man dann die Methode von MatthiasSimmack anwenden. Nur verbrennen reicht nämlich nicht aus. Auch aus ner angekokelten Platte kann man noch was rauslesen - das nötige Kleingeld vorausgesetzt. |
Bleibt mal bitte bei gescheiten Vorschlägen.
Ich kann dem Anwender ja schlecht sagen, er soll alle Dateien sichern, die er behalten will und dann die Festplatte vernichten.
Aber es muss doch irgendwas sicheres geben. Der Beitrag aus der Delphipraxis enthält irgendwas mit dem US-Verteidigungsministerium, das sollte ja dann eigentlich sicher sein, oder auch nciht? Nur macht der Code unter NFTS Probleme ...
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 13:55
Was heißt "sollte sicher sein"? Das vom US-Verteidigungsministerium war/ist ein Vorschlag, den ich damals bei Norton WipeInfo gesehen habe, bzw. beim entsprechenden Programm aus den PC Tools, als diese noch nicht von Symantec aufgekauft waren. Die Methode sieht vor, wie oft Daten zu überschreiben sind (und mit welchen Bytes), und das DOD bezeichnet das dann als recht sicher.
Und welcher Art sind denn die Probleme bei NTFS? Da kein direkter Zugriff auf das Dateisystem erfolgt, könnte ich mir bestenfalls nur vorstellen, dass du versuchst, Dateien zu überschreiben, auf die du keine bzw. nicht ausreichende Rechte (Admin-Konto) hast.
|
|
mahi 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 24.03.05 14:04
Es geht alles soweit, bis auf die Tatsache, das pro Ordner eine Datei namens "D" übergigbleibt, obwohl die ja eigentlich mit gelöscht werden sollte. Klar, ich könnte die extra löschen, aber das ist auch nicht die saubere Art und Weise.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 15:07
Na ja, du könntest ja mal versuchsweise ein
Delphi-Quelltext 1:
| DeleteFile(pchar(szFileName)); |
hinter
Delphi-Quelltext
setzen. Ich weiß zwar nicht, warum "Erase" versagt,  , aber wenn ich mal Zeit finde, dann schau ich´s mir mal an.
|
|
mahi 
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 24.03.05 15:16
Danke, jedoch geht auch das bei mir nicht.
Ich kann's mir nicht erklären.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 17:54
Hm, sehr merkwürdig.  Ich habe das eben selbst mal ausprobiert, und bei mir geht das anstandslos. Der Dateiinhalt wird überschrieben, die Datei wird umbenannt und gelöscht (nur mit "Erase", das "DeleteFile" war bei mir nicht erforderlich). Ich wusste doch, dass ich keinen Unsinn fabriziere.  Na ja, manchmal jedenfalls nicht ...
Und du bist sicher, dass auf deinem System alles richtig funktioniert? Wenn du sagst, dass "DeleteFile" nicht funktioniert, dann mach doch mal folgendes -
1. Du brauchst eine kleine Funktion, die ich mir von Luckie ... äh ... geborgt habe. Die enträtselt Fehlercodes und liefert einen Klartext zurück:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function SystemErrorMsg(const wnd: HWND; dwErrorVal: dword = 0): string; var buf : array[0..MAX_PATH]of char; dwVal : dword; begin if(dwErrorVal = 0) then dwVal := GetLastError else dwVal := dwErrorVal;
ZeroMemory(@buf,sizeof(buf)); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,nil,dwVal,0,buf,sizeof(buf),nil); SetString(Result,buf,lstrlen(buf)); end; |
2. "DeleteFile" ist eine Funktion. Geht das Löschen schief, liefert sie FALSE zurück, und "GetLastError" enthält die Ursache des Problems. Also:
Delphi-Quelltext 1: 2:
| if not DeleteFile(pchar(szFileName)) then ShowMessage(SystemErrorMessage(self.Handle)); |
Müsste dir evtl. anzeigen, warum die Datei nicht gelöscht werden konnte.
Probier´s mal aus, vllt. lässt sich ja noch was machen.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.03.05 18:10
MathiasSimmack hat folgendes geschrieben: | Ich wusste doch, dass ich keinen Unsinn fabriziere. Na ja, manchmal jedenfalls nicht ...
Delphi-Quelltext 1: 2:
| if not DeleteFile(pchar(szFileName)) then ShowMessage(SystemErrorMessage(self.Handle)); |
|
Bist du dir da sicher?  Seit wann erwartet die Funktion SysErrorMessage aus der Unit SysUtils ein Fensterhandle als Parameter?  Ich übergebe da eiegntlich immer getLastError. 
|
|
patrick
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Do 24.03.05 21:52
ich glaube er hat wohl ehr
Delphi-Quelltext 1: 2:
| if not DeleteFile(pchar(szFileName)) then ShowMessage(SystemErrorMsg(self.Handle)); |
damit er auf seine eigene funktion zugreift.
das was luckie meint ist das hier (meiner ansicht nach die einfachere lösung ^^):
Delphi-Quelltext 1: 2:
| if not DeleteFile(pchar(szFileName)) SysErrorMessage(GetLastError); |
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|