AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten Shredder Sourcecode

Ein Thema von DelphiUser123 · begonnen am 29. Jan 2017 · letzter Beitrag vom 13. Feb 2017
Antwort Antwort
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
696 Beiträge
 
Delphi 12 Athens
 
#1

AW: Daten Shredder Sourcecode

  Alt 29. Jan 2017, 17:25
Diese wird doch hier erzeugt if not RenameFile(FileName, newname)
vielleicht . . .
das ShredderFile(newname) wird aber immer aufgerufen, auch nach raise Exception . . . - oder liege ich da falsch ?
Ebenso das DeleteFile.

Grundsätzlich fehlt mir hier ein
Code:
if...
  then..
  else..
Block und da der zusammengehörige Code mehr als eine Zeile umfassr ein
Code:
begin...end
Roland
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#2

AW: Daten Shredder Sourcecode

  Alt 29. Jan 2017, 17:36
Erstmal schreibst du in den WindowsFileCache und später dann auch noch in den Cache der Schnittstelle und des Datenträgers,
also auf dem Datenträger kommt nur ein Bruchteil dessen an, was du da schreibst. (unter der Annahme deine Schleife würde funktionieren und der Schreibcache wäre deaktiviert und würde sich schell genug leeren)

Außerdem ist deine Schleife falsch, denn du schreibst alle "Durchläufe" hintereinander und nicht "übereinander".

Und wenn es um Datenträger ala SSD, USB-Stick und SD-Karte geht, dann kannst du sowas sowieso vergessen, weil du niemals die eigentlischen physischen Speicherbereiche erwischst, wo die Daten drin standen und Mehrfachschreiben ist da auch sinnlos.


[edit]
Du = der gefundene Code


[add]
Noch besser, Buffer ist 1024 Byte lang, aber FileBuffer nur 6*SizeOf(Integer), also zusätzlich zu dem Offset, gibt es hier immer einen Bufferoverflow.

FileFuffer ist Integer, aber wird nur mit Bytes befüllt, also würde nur jedes vierte Byte wie gewünnscht überschrieben und der Resst immer wieder mit 0.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Jan 2017 um 17:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Daten Shredder Sourcecode

  Alt 30. Jan 2017, 10:36
Wenn du Deine Daten nicht mehr auf Disketten (oder Festplatten die inzwischen ca. 20Jahre alt sind) speicherst, ist der praktische Nutzen dieses Programms gleich null. Wenn du sichere Löschung willst, dann greif zu einem 500 Hammer.
Ansonsten ist das Beispiel ein schönes für "so sollte man es nicht machen".
Neben der etwas seltsamen Handhabung verschiedener Typen, hat das Programm ein wichtiges Manko, es verläßt sich darauf, das die Datei xyz.xxx immer an der gleichen Stelle auf dem Datenträger ist. Wer hierfür nicht die FAT und andere Organisationsstrukturen auf dem Datenträger bemüht, glaubt auch, daß Zitronenfalter Zitronen falten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
44 Beiträge
 
#4

AW: Daten Shredder Sourcecode

  Alt 30. Jan 2017, 18:45
Danke für die vielen Antworten.
Jetzt mal abgesehen vom Hammer...
es gibt doch einige kleine Tools, die sicheres Löschen versprechen.
Wo/ in welche Themen muss ich mich einarbeiten, um so etwas programmieren zu können?
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
44 Beiträge
 
#5

AW: Daten Shredder Sourcecode

  Alt 13. Feb 2017, 13:14
Nochmals Danke für die Korrekturen am vorgestellten Code.

Himitsu und p80286 haben grundlegende Kritik geäußert.

Es gibt da ein Programm namens "Sicher Löschen", eine Version vom Oktober 2016.
Man kann es downloaden bei Chip.de, 166,3 kB (!)

Chip.de sagt:
"CHIP Fazit zu Sicher Löschen
Sensible Daten können Sie mit der Sicher Löschen Freeware endgültig löschen. Das kleine, kostenlose Tool ist portabel, muss also nicht installiert werden. Unser Download-Paket beinhaltet sowohl die 32-, als auch die 64Bit-Version.
Christian Schwalb | CHIP Software-Redaktion"

Es kann doch nicht so schwer sein, die richtigen Datenblöcke zu erwischen und zu überschreiben.
Es viel das Wort FAT, welche Stichworte sind noch relevant?

Wie komme ich weiter, wo muss ich was nachlesen? Gibt es irgendwo Tutorials/ gute Bücher zum Thema?
Ist Delphi überhaupt geeignet oder wäre eine andere Programmiersprache ratsam?
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Daten Shredder Sourcecode

  Alt 13. Feb 2017, 13:49
Es kann doch nicht so schwer sein, die richtigen Datenblöcke zu erwischen und zu überschreiben.
Es viel das Wort FAT, welche Stichworte sind noch relevant?

Wie komme ich weiter, wo muss ich was nachlesen? Gibt es irgendwo Tutorials/ gute Bücher zum Thema?
Ist Delphi überhaupt geeignet oder wäre eine andere Programmiersprache ratsam?
Wieso kann das nicht so schwer sein?

Ein Stichwort bzgl. SSD, SD, USB etc. wäre Wear leveling. Ich behaupte, bei diesen Medien solltest Du Dein "nicht so schwer" in "unmöglich" ändern.

Auch bei HDDs gibt es jede Menge erschwerende Techniken, z.B. Volume Shadow Copies, aber auch schon allgemein eben, dass es keine Garantie gibt, dass eine geänderte Datei an die gleichen Stellen zurückgeschrieben wird. Selbst wenn Du da die Sektoren findest und hard überschreibst, könnten Altlasten von vorigen Schreibaktionen anderswo auf der Platte rumgeistern.

"Sicheres Löschen" klappt sehr oberflächlich natürlich trotzdem. Aber um was vor Tante Erna zu verstecken ist schon ein Leeren des Papierkorbes ausreichend, sobald man aber anfängt, gute Entlösch-Tools blockieren zu wollen, wird's exorbitant speziell und schwer.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#7

AW: Daten Shredder Sourcecode

  Alt 13. Feb 2017, 14:35
Zitat:
sektoren finden
Kleine Dateien werden bei NTFS garnicht in eigene Sektoren geschrieben, sondern landen direkt in der MFT, als "Attribut" am Datei-Index.

Alleine schon eine Defragmentierung kopiert Daten und diese Kopieen vollständig zu löschen ist bissl aufwändig.
* Datei überschreiben/löschen
* alle freien Sektoren überschreiben
** Wear Leveling, Fehlerbehandlungen für defekte Sektoren und Co. verhindern, dass du an alle Sektoren ran kommst
* bei allen anderen Dateien die "ungenutzen" Teile im letzten Sektor überschreiben
* dann das Selbe auch noch bei Sparse-Files und NTFS-komprimierten Dateien, welches zwischendrin mehrere nur teilweise genutze Sektoren haben
* zum Schluß auch noch alle "freien" Einträge in der MFT und zwischen den Attributen aller Indize
* ...
* und wer weiß was es sonst noch alles gibt oder bald gibt (z.B. SSD-HDD-Mixlaufwerke, wo eventuell beliebige Sektoren entweder in der SSD oder auf der HDD liegen können)

Aber ganz im Ernst, viele Programme versprechen sonstwas und halten oftmals nichts.
* Dateien sicher löschen (früher ging es mal, so wie geplant, das sogenannte NSA-sichere löschen durch mehrfaches Überschreiben)
* RAM Cleaner
* Bei Google suchenVollbitverschlüsselung
* ...

Bei heutigen Strukturgrößen der der HDDs reicht einmalüberschreiben eigentlich aus, denn die damaligen Tiefeneffekte gibt es praktisch nicht mehr, bzw. sind nur mit extremen Aufwand, für exorbitant viel Geld in unbegrenzter Dauer und durch zerstörendende Lesemethoden entzifferbar und das auch nur mit einer sehr geringen Wahrscheinlichkeit auf Richtigkeit für einzelne Bits ... bezogen auf eine Datei oder die ganze HDD gegen 0 gehend. (HDD zerlegen und Scheibe in Nanometerschritten abfräsen, die magnetischen Ausrichtungen fast jedes Atoms bestimmen und das dann in paar Supercomputern zu einer virtuellen mehrschichtigen Festplatte zusammensetzen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Feb 2017 um 15:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Daten Shredder Sourcecode

  Alt 13. Feb 2017, 14:09
das wesentliche hat CCRDude bereits geschrieben, darum nur eine kleine Anmerkung. Wenn du "leere Bereiche" nullst, werden logisch nicht genutzte Cluster(die sich u.U. aus mehreren Sektoren [512] zusammen setzen) überschrieben. Abgesehen davon, daß moderne Festplatten die 512-Sektoren teilweise simulieren (sind die 512er auch aufeinander folgend?), da das Betriebssystem die Dateien in Clustern verwaltet (1..n Sektoren) und die Verwaltungseinheit des Betriebssystems das Cluster ist. kann es also sein, daß Bereiche auf der Festplatte als belegt gekennzeichnet sind, die in Wahrheit nicht genutzt werden.
Ein weiteres Stichwort was Du suchst ist NTFS. Hierbei sollen kleine Dateien (<2k ?) nicht in den Datenbereich der Festplatte geschrieben werden, sondern gleich innerhalb des NTFS-Verwaltungsbereiches gespeichert werden. in diesem Falle gibt es also keinen Datenbereich den Du überschreiben könntest.

ggf. könntest Du hier noch ein paar interessante Informationen erhalten.

Sagt der Begriff Schlangenöl irgendetwas?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz