4

Моя цель - иметь файлы оригинального размера, которые нельзя открыть (или восстановить) в соответствующих программах, таких как MS Office Word. Моя цель - симулировать наличие файлов, пока я не хочу делиться содержимым файлов. В идеале содержимое файла должно быть полностью перезаписано случайными байтами, а размер файла должен оставаться таким же, как и в оригинале.

Я знаю, что иногда это можно сделать с помощью шестнадцатеричного редактора или даже блокнота, где можно изменить всего несколько байтов, и файл станет непригодным для использования. Но это может не всегда работать для некоторых форматов, таких как изображения и аудио, которые еще можно открыть, но с артефактами.

Для самых любознательных пользователей по-прежнему требуются ответы на вопрос «Зачем вам это нужно?« - Мне это нужно, потому что я не хочу делиться своими разработками с людьми, которые заставляют меня делиться файлами. Иногда тебе просто нужно. Можно подумать о многих других случаях использования - для имитации полезной нагрузки при копировании файлов или операциях резервного копирования или для тестирования разработанного вами программного обеспечения, которое может изящно обрабатывать нежелательные файлы.

Я протестировал несколько утилит безопасного уничтожения, которые могут перезаписывать файлы случайными данными, но после этого эти файлы удаляются. Я не видел возможности отключить шаг удаления. Если бы такой вариант существовал, это было бы решением.

3 ответа3

6

Я написал быстрый подход с использованием Random File File Creator.

Майк отметил, что RDFC неправильно заполняет файл случайными данными. Я написал автору по электронной почте и сообщил об этой проблеме. В настоящее время я реализовал замену rdfc.exe. Если вы хотите скомпилировать и использовать его, смотрите раздел Как вы компилируете проект из исходного кода?

Этот скрипт командной строки Windows будет делать то, что вы хотите:

@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

Это требует, чтобы rdfc.exe был помещен в тот же каталог, что и скрипт. Для скрипта потребуется 1 параметр, целевой каталог. Каждый отдельный файл в целевом каталоге будет заменен файлом точно такого же размера, но заполненным случайными данными.

3

PowerShell

Не требует внешнего инструмента. В качестве бонуса он сохраняет время LastWrite. Другие времена не изменены.

# 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

До

После

вдохновение

0

bcrypt будет работать нормально. Постройте его в Cygwin и возьмите с собой Cygwin dll на USB-накопителе.

Редактировать: Или, скорее, тривиально запутать его, хоринг их с ключом по вашему выбору. Это, по крайней мере, сохранит размеры файлов. Нет необходимости изменять более 8 байт, самое большее килобайт, с начала файлов, если у вас много документов и вы просто хотите сделать это быстро. Был некоторый вымогатель, который сделал это некоторое время назад. Я, очевидно, не криптограф, но довольно скучный материал, просеивающий файлы, получая ключ, используемый для их запутывания. Или используйте dd (из unxutils.sf.net для Windows) таким образом: $ dd conv = swab if = infile of = outfile в цикле между вашими документами. Предупреждение: использование dd, как это сделает вас выглядеть глупо. Эта же команда перевернет процесс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .