• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема Безвозвратное удаления данных

  • Автор темы Asset030303
  • Дата начала
A

Asset030303

Есть код, он удаляет файлы безвозвратно, с несколько проходами, но есть проблема, при удаления файла, он не меняет название файла в рандомные символы , а меняет рандомно только внутри файла, а мне нужно что бы он и название файла менял. Так же как сделать так, что бы при удаления файла он даже сам размер файла убирал в ноль бит?
Например метод удаления DOD USA с 3 проходами, при удаления он сам файл безвозвратно удаляет путем занулирования , что сам размер файла становиться 0 бит ! (Я это смотрел с помощью восстановления программы R-studio, там все удаленные файлы с помощью стирания были с размером 0 бит)
Ну более в сложных проходов например 6 или 7 проходов, там удаляется уже со случайными числами.
Можно сделать копию метода Немецкий стандарт VSITR
Работает вот так
Цикл 1: зануление (0x00 в каждый байт);
Цикл 2: запись единиц (0xFF в каждый байт);
Цикл 3: см. цикл 1
Цикл 4: см. цикл 2
Цикл 5: см. цикл 3
Цикл 6: см. цикл 4
Цикл 7: запись (0xAA) в каждый байт;


Помогите доработать код!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Open: TButton;
Path: TStaticText;
Delete: TButton;
StaticText1: TStaticText;
Splitter1: TSplitter;
Num: TTrackBar;
Level: TStaticText;
procedure OpenClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure NumChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OpenClick(Sender: TObject);
var
FileName: string;

begin
OpenDialog1.Execute;

FileName:=OpenDialog1.FileName;

Path.Caption:= FileName;
end;

procedure TForm1.DeleteClick(Sender: TObject);
var
buffer: array [0..4095] of Byte;
max, n: LongInt;
i,j,k: Integer;
fs: TFileStream;
FileName: String;
begin

case Num.Position of
0: k:=1;
1: k:=3;
2: k:=5;
3: k:=10;
4: k:=15;

end;
FileName:= Path.Caption;
fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
try
for i := 1 to k do
begin
for j := Low(buffer) to High(buffer) do
buffer[j] := Random(256);
max := fs.Size;
fs.Position := 0;
while max > 0 do
begin
if max > SizeOf(buffer) then
n := SizeOf(buffer)
else
n := max;
fs.Write(Buffer, n);
max := max - n;
end;
FlushFileBuffers(fs.Handle);
end;
finally
fs.Free;
end;
Deletefile(FileName);
ShowMessage('Готова!');
end;


procedure TForm1.NumChange(Sender: TObject);
begin
case Num.Position of
0: Level.Caption:='обычный';
1: Level.Caption:='Нормальный';
2: Level.Caption:='Повышенный';
3: Level.Caption:='Очень высокий';
4: Level.Caption:='Гарантированно';
end;
case Num.Position of
0: Level.Font.Color:=clBlue;
1: Level.Font.Color:=clNavy;
2: Level.Font.Color:=clGreen;
3: Level.Font.Color:=clYellow;
4: Level.Font.Color:=clRed;
end;

end;

end.
 
P

PredatorGXG

Зачем тебе создавать код если уже все придумано умными людьми кто занимается такими вопросам профессианально много лет?

apt-get install secure-delete
 
Последнее редактирование модератором:
P

PredatorGXG

Как вариант Eraser Portable ставь, если на шиндоус сидишь, 35 проходов.
 
A

Asset030303

Зачем тебе создавать код если уже все придумано умными людьми кто занимается такими вопросам профессианально много лет?

apt-get install secure-delete
Мне это нужно для своего проекта, и я прекрасно знаю что есть программы специальные для этого, но мне не нужны эти программы!
 

randrange

Member
17.12.2022
19
0
BIT
0
Есть код, он удаляет файлы безвозвратно, с несколько проходами, но есть проблема, при удаления файла, он не меняет название файла в рандомные символы , а меняет рандомно только внутри файла, а мне нужно что бы он и название файла менял. Так же как сделать так, что бы при удаления файла он даже сам размер файла убирал в ноль бит?
Например метод удаления DOD USA с 3 проходами, при удаления он сам файл безвозвратно удаляет путем занулирования , что сам размер файла становиться 0 бит ! (Я это смотрел с помощью восстановления программы R-studio, там все удаленные файлы с помощью стирания были с размером 0 бит)
Ну более в сложных проходов например 6 или 7 проходов, там удаляется уже со случайными числами.
Можно сделать копию метода Немецкий стандарт VSITR
Работает вот так
Цикл 1: зануление (0x00 в каждый байт);
Цикл 2: запись единиц (0xFF в каждый байт);
Цикл 3: см. цикл 1
Цикл 4: см. цикл 2
Цикл 5: см. цикл 3
Цикл 6: см. цикл 4
Цикл 7: запись (0xAA) в каждый байт;


Помогите доработать код!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ComCtrls, ExtCtrls;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Open: TButton;
Path: TStaticText;
Delete: TButton;
StaticText1: TStaticText;
Splitter1: TSplitter;
Num: TTrackBar;
Level: TStaticText;
procedure OpenClick(Sender: TObject);
procedure DeleteClick(Sender: TObject);
procedure NumChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OpenClick(Sender: TObject);
var
FileName: string;

begin
OpenDialog1.Execute;

FileName:=OpenDialog1.FileName;

Path.Caption:= FileName;
end;

procedure TForm1.DeleteClick(Sender: TObject);
var
buffer: array [0..4095] of Byte;
max, n: LongInt;
i,j,k: Integer;
fs: TFileStream;
FileName: String;
begin

case Num.Position of
0: k:=1;
1: k:=3;
2: k:=5;
3: k:=10;
4: k:=15;

end;
FileName:= Path.Caption;
fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
try
for i := 1 to k do
begin
for j := Low(buffer) to High(buffer) do
buffer[j] := Random(256);
max := fs.Size;
fs.Position := 0;
while max > 0 do
begin
if max > SizeOf(buffer) then
n := SizeOf(buffer)
else
n := max;
fs.Write(Buffer, n);
max := max - n;
end;
FlushFileBuffers(fs.Handle);
end;
finally
fs.Free;
end;
Deletefile(FileName);
ShowMessage('Готова!');
end;


procedure TForm1.NumChange(Sender: TObject);
begin
case Num.Position of
0: Level.Caption:='обычный';
1: Level.Caption:='Нормальный';
2: Level.Caption:='Повышенный';
3: Level.Caption:='Очень высокий';
4: Level.Caption:='Гарантированно';
end;
case Num.Position of
0: Level.Font.Color:=clBlue;
1: Level.Font.Color:=clNavy;
2: Level.Font.Color:=clGreen;
3: Level.Font.Color:=clYellow;
4: Level.Font.Color:=clRed;
end;

end;

end.
Ознакомьтесь с этой статьей, уважаемый:
 

randrange

Member
17.12.2022
19
0
BIT
0
А по поводу безопасного удаления с функцией перезаписи можете ознакомиться тут:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!