So zerstören Sie Dateiinhalte, ohne Dateien zu löschen

2646
Mike

Mein Ziel ist es, Dateien mit Originalgröße zu haben, die in ihrer jeweiligen Software wie MS Office Word nicht geöffnet (oder wiederhergestellt) werden können. Mein Ziel ist es, das Vorhandensein von Dateien zu simulieren, ohne dass ich den Inhalt der Dateien freigeben möchte. Im Idealfall sollte der Inhalt der Datei vollständig mit zufälligen Bytes überschrieben werden, während die Dateigröße der ursprünglichen Größe entsprechen sollte.

Ich weiß, dass dies manchmal mit einem Hex-Editor oder sogar einem Notizblock gemacht werden kann, bei dem nur wenige Bytes geändert werden könnten und die Datei unbrauchbar wird. Bei einigen Formaten wie Bildern und Audio, die noch geöffnet werden könnten, jedoch mit Artefakten, kann dies nicht immer funktionieren.

Für die neugierigsten Benutzer, die mich immer noch auffordern, die Frage zu beantworten: "Warum brauchen Sie das?" - Ich brauche das, weil ich meine Entwicklungen nicht mit einigen Leuten teilen möchte, die mich dazu zwingen, die Dateien weiterzugeben. Manchmal brauchst du nur. Sie können sich viele andere Anwendungsfälle vorstellen - um die Nutzlast für Dateikopier- oder Sicherungsvorgänge zu simulieren oder um zu testen, ob die von Ihnen entwickelte Software ordnungsgemäß mit Junk umgehen kann.

Ich habe eine Reihe von sicheren Shred-Dienstprogrammen getestet, die Dateien mit zufälligen Daten überschreiben können. Danach werden diese Dateien jedoch gelöscht. Ich habe keine Option zum Deaktivieren des Löschschritts gesehen. Wenn eine solche Option vorhanden wäre, wäre das eine Lösung.

4
@ Ramhound: das ist lächerlich. Die Software dafür ist vielleicht noch nicht geschrieben worden, aber das Schreiben ist fast trivial (wenn auch in den meisten Programmiersprachen etwas mehr als ein Einzeiler). Natürlich gibt es eine Möglichkeit, die Größe einer Datei abzufragen und genau so viele null (oder zufällige) Bytes zu schreiben! Celada vor 11 Jahren 4
Technisch eine interessante Frage, aber warum sollten Sie das wollen? Es klingt nachtragend: "Wenn jemand meine Dateien kopiert, möchte ich, dass seine Software / sein System abstürzt"? Die Mühe nicht wert, IMO Jan Doggen vor 11 Jahren 0
Warum müssen diese "zerstörten" Dateien dieselbe Größe wie das Original haben? Sie sind unbrauchbar. Warum ist es wichtig, welche Größe sie haben? Der Hochstapler vor 11 Jahren 2
@OliverSalzburg Ich muss die Originalgröße beibehalten, damit die Dateiliste in der Explorer-Detailansicht verisimilar aussieht. Mike vor 11 Jahren 0

3 Antworten auf die Frage

6
Der Hochstapler

Ich habe mit dem Random Data File Creator einen schnellen Ansatz geschrieben .

Mike stellte fest, dass RDFC die Datei nicht korrekt mit zufälligen Daten füllt. Ich habe dem Autor eine E-Mail geschickt und dieses Problem gemeldet. Vorläufig habe ich einen Drop-In-Ersatz fürrdfc.exe implementiert . Wenn Sie es kompilieren und verwenden möchten, lesen Sie Wie kompilieren Sie ein Projekt aus dem Quellcode?

Dieses Windows-Befehlszeilenskript erledigt, was Sie möchten:

@ECHO OFF SETLOCAL IF "%1"=="" GOTO missingParam GOTO :begin  :missingParam ECHO Missing target. Use %~nx0 [DRIVE:\]DIRECTORY GOTO :eof  :begin SET RDFC=%CD%\rdfc.exe PUSHD %1 CALL :treeProcess POPD ENDLOCAL GOTO :eof  :treeProcess FOR %%f IN (*.*) DO ( ECHO | SET /P=Shredding %%f...  %RDFC% %%f %%~zf B overwrite > NUL ECHO %%~zf random bytes written. ) FOR /D %%d IN (*) DO ( CD %%d CALL :treeProcess CD .. ) EXIT /B 

Voraussetzung ist, dass rdfc.exees sich in demselben Verzeichnis befindet wie das Skript. Das Skript benötigt 1 Parameter, das Zielverzeichnis. Jede einzelne Datei im Zielverzeichnis wird durch eine Datei mit der gleichen Größe ersetzt, aber mit zufälligen Daten gefüllt.

enter image description here

Ich liebe es, wie Sie im Skript rekursieren Mike vor 11 Jahren 0
Ich denke, es gibt einen kleinen Fehler mit `rdfc`. Am Ausgang bekomme ich 2 zufällige Bytes gefolgt von 2 Null Bytes und so weiter. Mike vor 11 Jahren 0
@ Mike: Ich habe das tatsächlich von http://stackoverflow.com/questions/8397674/windows-batch-file-looping-through-directories-to-process-files kopiert Der Hochstapler vor 11 Jahren 0
@ Mike: Ich habe die Ausgabe nie wirklich überprüft, ich habe mir nur gedacht, dass sie das bietet, was sie anbietet: P Unter http://stackoverflow.com/questions/533636/generating-random-files-in-windows gab es jedoch andere Vorschläge. Dies war nur das eleganteste, wie es scheint. Und ja, ich schaffe natürlich alle meine Antworten aus anderen SO-Antworten; D Der Hochstapler vor 11 Jahren 1
@ Mike: "Ich brauche das, weil ich meine Entwicklungen nicht mit einigen Leuten teilen möchte, die mich dazu zwingen, die Dateien weiterzugeben." - Ehrlich gesagt sehe ich nicht, wie sie nichts vermuten werden, wenn * keine * der Dateien, die Sie mit ihnen teilen, geöffnet werden, es sei denn, sie sind hirntot. Und wenn sie sich tatsächlich so leicht täuschen lassen, ist es wirklich wichtig, welche Art von (zufälligen) Daten in den Dateien vorhanden sind? Wie wirkt sich der Inhalt von (pseudo-) zufälligen Inhalten im Vergleich zu einer wiederholten Folge von "2 zufälligen Bytes gefolgt von 2 Null-Bytes" aus? Karan vor 11 Jahren 1
@ Karan Ja, fair genug. Aber warum nicht nach Perfektion streben? 2 + 2 Bytes sehen nicht nach Rauschen aus, und wenn es Rauschen ist, könnte ich sagen, dass ein optischer Datenträger oder ein USB-Flash-Laufwerk ausgefallen ist. Ich weiß, dass das albern klingt, aber für nicht super Benutzer kann es funktionieren. Mike vor 11 Jahren 0
@ Mike Und du bist dir sicher, dass sie dich nicht einfach nach einer weiteren Kopie fragen werden? Der Hochstapler vor 11 Jahren 1
@Mike if an optical disk/USB flash drive *fails* then they wouldn't be able to read anything, let alone see the files. Even if just a few sectors were corrupted, the majority of files would still be readable (or at minimum, a good portion of their contents). And if you're dealing with files on a network/corporate drive, it's likely they also take periodic backups, rendering this technique even less effective. Breakthrough vor 11 Jahren 1
@ Mike Ich habe den Autor von RDFC per E-Mail benachrichtigt und das Problem gemeldet. Ich habe auch ein kleines Tool geschrieben, um RDFC zu ersetzen, das Sie auf GitHub finden können. Link ist in der Antwort oben. Der Hochstapler vor 11 Jahren 0
@Breakthrough Bitte nimm mich nicht falsch, das weiß ich. Es ist jedoch einfacher, Leute mit Lärm zu täuschen, als die Noise-Zero-Spalten zu erklären. Mike vor 11 Jahren 0
@OliverSalzburg Ausgezeichnet! Vielen Dank! Mike vor 11 Jahren 0
3
nixda

Power Shell

Benötigt kein externes Werkzeug. Als Bonus wird die LastWrite-Zeit beibehalten. Andere Zeiten werden nicht geändert.

# Get file as item to access content and file dates $file = Get-Item "C:\Users\Nixda\Desktop\input.txt"   # Save write time to temp variable for later use $oldWriteTime = $file.LastWriteTime   # Create an empty array of the same size as your file size in bytes $content = New-Object Byte[] $file.length   # Fill the array using a System.Random object. Here is the magic (New-Object Random).NextBytes($content)  # Write the array to the same file with System.IO.File [IO.File]::WriteAllBytes($file,$content)  # Set back old write time $file.LastWriteTime = $oldWriteTime 

Vor

Nach dem

Inspiration

0
user400344

bcrypt wird gut funktionieren. Bauen Sie es in cygwin auf und bringen Sie die cygwin-dll auf einem USB-Stick mit.

Edit: Oder eher trügerisch verschleiern, indem Sie sie mit einem Schlüssel Ihrer Wahl xieren. Das würde zumindest die Dateigrößen erhalten. Es gibt keine Notwendigkeit, mehr als 8 Bytes, höchstens ein KB, vom Anfang der Dateien zu ändern, wenn Sie viele Dokumente haben und nur wollen, dass dies schnell erledigt wird. Es gab einige Ransomware, die dies vor einiger Zeit getan haben. Ich bin offensichtlich kein Kryptograf, aber es ist ziemlich langweiliges Zeug, das die Dateien durchsucht, um den Schlüssel zu finden, mit dem sie verschleiert werden. Oder benutzen Sie dd (von unxutils.sf.net für Windows): $ dd conv = swab if = infile of = outfile in einer Schleife über Ihre Dokumente. Warnung: Wenn du dd verwendest, wirst du dumm aussehen. Der gleiche Befehl wird den Vorgang umkehren.

Das erscheint zu kompliziert für eine solche einfache Operation, und die Verschlüsselung der Datei würde ihre Größe geringfügig verändern. vor 9 Jahren 0