Ĺadny brzuch
Witam Serdecznie :) ,
Interesuje mnie jak dokonać nadpisania pliku np. Metodą Gutmanaa :kosz: (35 seriami wzorców składających się z zer i jedynek).
Lub też nadpisania pliku np. 5 krotnie.
Proszę o pomoc ;)
Witam Serdecznie :) ,
Interesuje mnie jak dokonać nadpisania pliku np. Metodą Gutmanaa :kosz: (35 seriami wzorców składających się z zer i jedynek).
Lub też nadpisania pliku np. 5 krotnie.
Proszę o pomoc ;)
Nie znam metody Gutmanaa, natomiast jeśli plik chcesz nadpisać np. pięciokrotnie choć nie wiem po co i (tak nie będziesz miał pewności czy nadpisanie będzie na tych samych klastrach dysku) użyj pętli np. for.
Nawet jak nadpisze na innych, to wskaźnik do pliku "przeskoczy" do nowych danych i po odzyskaniu będą same bzdety.
//EDIT: A zresztą ja mam własny algorytm - nadpisuję losowymi bajtami.
Użytkownik Rave edytował ten post 26 wrzesień 2008, 21:35
Nawet jak nadpisze na innych, to wskaźnik do pliku "przeskoczy" do nowych danych i po odzyskaniu będą same bzdety.
//EDIT: A zresztą ja mam własny algorytm - nadpisuję losowymi bajtami.
Czyli jak mam rozwiązać problem z tym nadpisywaniem ? ;)
Może nie powinienem, ale dam ci fragment mojego programu do kasowania ;)
for i:=1 to pV do begin currpas.Caption:= 'Current pass: '+IntToStr(i)+'/'+IntToStr(pV); passprg.Position:=0; ReWrite(f); for j:=0 to fs do begin bt.Caption:='Byte: '+IntToStr(j); Randomize; r:=Random(256); Write(f,r); passprg.Position:=passprg.Position+1; Application.ProcessMessages; end; Application.ProcessMessages; CloseFile(f); allprg.Position:=allprg.Position+1; end;
Jeśli dobrze pamiętam, to "rewrite" otwiera plik kasując jego zawartość. Jeśli rozpoczynasz zapisywanie, to nie masz pewności, że zapisujesz w tym samym miejscu. Czy takie nadpisywanie ma sens?
Masz rację, że skanując MFT nie odzyskasz już tak łatwo pliku, bo program wskaże inne dane, ale w takim przypadku wystarczyłoby tylko otworzyć plik (i ewentualnie zapisać jeden klaster), bo już taka operacja powoduje, że w MTF rozmiar pliku jest inny niż oryginalny, a więc nie ma powiązań do kolejnych klastrów.
Jednak skanując cały dysk możesz odzyskać część danych, a przecież chodzi o to, żeby całkowicie wymazać dane. Twój program po prostu zamazuje wpis w MFT, a więc kilkukrotne nadpisywanie nie daje żadnego efektu. Możesz jedynie przypadkiem nadpisać dane z pliku.
Lepiej otworzyć plik (nie kasując jego zawartości), ustawić się na początku i rozpocząć zapisywanie. Wtedy system nie będzie szukał wolnych klastrów, bo nie dodajesz nowych danych do pliku, ale modyfikujesz istniejące. Nie jestem tego pewien, ale po prostu wydaje się to logiczne.
Teraz to mi się już pomieszało (Czym więcej wypowiedzi tym więcej teorii ;) ). Czyli co należało by zrobić aby pliku nie dało się odzyskać.
Zastosować mój kod, tylko ReWrite zamienić na:
Reset(f); Seek(f,0);
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Interesuje mnie jak dokonać nadpisania pliku np. Metodą Gutmanaa :kosz: (35 seriami wzorców składających się z zer i jedynek).
Lub też nadpisania pliku np. 5 krotnie.
Proszę o pomoc ;)
Witam Serdecznie :) ,
Interesuje mnie jak dokonać nadpisania pliku np. Metodą Gutmanaa :kosz: (35 seriami wzorców składających się z zer i jedynek).
Lub też nadpisania pliku np. 5 krotnie.
Proszę o pomoc ;)
Nie znam metody Gutmanaa, natomiast jeśli plik chcesz nadpisać np. pięciokrotnie choć nie wiem po co i (tak nie będziesz miał pewności czy nadpisanie będzie na tych samych klastrach dysku) użyj pętli np. for.
Nawet jak nadpisze na innych, to wskaźnik do pliku "przeskoczy" do nowych danych i po odzyskaniu będą same bzdety.
//EDIT: A zresztą ja mam własny algorytm - nadpisuję losowymi bajtami.
Użytkownik Rave edytował ten post 26 wrzesień 2008, 21:35
Nawet jak nadpisze na innych, to wskaźnik do pliku "przeskoczy" do nowych danych i po odzyskaniu będą same bzdety.
//EDIT: A zresztą ja mam własny algorytm - nadpisuję losowymi bajtami.
Czyli jak mam rozwiązać problem z tym nadpisywaniem ? ;)
Może nie powinienem, ale dam ci fragment mojego programu do kasowania ;)
for i:=1 to pV do begin currpas.Caption:= 'Current pass: '+IntToStr(i)+'/'+IntToStr(pV); passprg.Position:=0; ReWrite(f); for j:=0 to fs do begin bt.Caption:='Byte: '+IntToStr(j); Randomize; r:=Random(256); Write(f,r); passprg.Position:=passprg.Position+1; Application.ProcessMessages; end; Application.ProcessMessages; CloseFile(f); allprg.Position:=allprg.Position+1; end;
Jeśli dobrze pamiętam, to "rewrite" otwiera plik kasując jego zawartość. Jeśli rozpoczynasz zapisywanie, to nie masz pewności, że zapisujesz w tym samym miejscu. Czy takie nadpisywanie ma sens?
Masz rację, że skanując MFT nie odzyskasz już tak łatwo pliku, bo program wskaże inne dane, ale w takim przypadku wystarczyłoby tylko otworzyć plik (i ewentualnie zapisać jeden klaster), bo już taka operacja powoduje, że w MTF rozmiar pliku jest inny niż oryginalny, a więc nie ma powiązań do kolejnych klastrów.
Jednak skanując cały dysk możesz odzyskać część danych, a przecież chodzi o to, żeby całkowicie wymazać dane. Twój program po prostu zamazuje wpis w MFT, a więc kilkukrotne nadpisywanie nie daje żadnego efektu. Możesz jedynie przypadkiem nadpisać dane z pliku.
Lepiej otworzyć plik (nie kasując jego zawartości), ustawić się na początku i rozpocząć zapisywanie. Wtedy system nie będzie szukał wolnych klastrów, bo nie dodajesz nowych danych do pliku, ale modyfikujesz istniejące. Nie jestem tego pewien, ale po prostu wydaje się to logiczne.
Teraz to mi się już pomieszało (Czym więcej wypowiedzi tym więcej teorii ;) ). Czyli co należało by zrobić aby pliku nie dało się odzyskać.
Zastosować mój kod, tylko ReWrite zamienić na:
Reset(f); Seek(f,0);