SDelete v2.06

Překlad od Marka Russinoviche

Publikováno: 5. března 2026

StáhnoutSDelete(328 KB)

Úvod

Jedním z rysů souladu C2 systému Windows NT/2000 (Win2K) je implementace ochrany proti opakovanému použití objektů. To znamená, že když aplikace přidělí místo na disku nebo virtuální paměť, není schopna zobrazit data, která byla dříve uložena v prostředcích, které pro ni alokuje Windows NT/2K. systém Windows NT nulami vyplní paměť a vynuluje sektory na disku, kde je soubor umístěn před tím, než poskytne aplikaci kterýkoli typ prostředku. Opakované použití objektu však nevyžaduje, aby prostor, který soubor zabírá před svým odstraněním, byl vymazán na nuly. Důvodem je to, že systém Windows NT/2K je navržen s předpokladem, že operační systém řídí access systémových prostředků. Pokud ale operační systém není aktivní, je možné použít editory nezpracovaných disků a nástroje pro obnovení k zobrazení a obnovení dat, která operační systém zrušil. I když šifrujete soubory pomocí systému souborů EFS (Encrypting File System) win2K, původní nešifrovaná data souboru zůstanou na disku po vytvoření nové zašifrované verze souboru.

Jediným způsobem, jak zajistit, aby odstraněné soubory i soubory, které šifrujete pomocí systému souborů EFS, byly bezpečné před obnovením, je použít zabezpečenou aplikaci pro odstranění. Aplikace pro bezpečné mazání přepisují data odstraněného souboru na disku pomocí technik, které prokazatelně činí data neobnovitelnými, a to i při použití obnovovacích technologií, které dokážou číst vzory v magnetických médiích, jež odhalují nedokonale smazané soubory. SDelete (Secure Delete) je taková aplikace. SDelete můžete použít k bezpečnému odstranění existujících souborů i k bezpečnému vymazání všech dat souborů, která existují v nepřidělených částech disku (včetně souborů, které jste už odstranili nebo zašifrovali). SDelete implementuje standard vymazání a sanitizace Ministerstva obrany DOD 5220.22-M, abyste měli jistotu, že po odstranění pomocí SDelete jsou data vašich souborů navždy pryč. Mějte na paměti, že SDelete bezpečně odstraní data souboru, ale ne názvy souborů umístěné v volného místa na disku.

Použití SDelete

SDelete je nástroj příkazového řádku, který přebírá řadu možností. V jakémkoli daném použití vám umožní odstranit jeden nebo více souborů nebo adresářů nebo vyčistit volné místo na logickém disku. SDelete přijímá zástupné znaky jako součást specifikátoru adresáře nebo souboru.

Použití:

sdelete [-p passes] [-r] [-s] [-q] [-f] <file or directory [...]>
sdelete [-p passes] [-q] [-z|-c] <drive letter [...]>
sdelete [-p passes] [-q] [-z|-c] <physical disk number [...]>
Parametr Popis
-c Vyčistěte volné místo.
-f Vynuťte, aby se argumenty obsahující pouze písmena považovaly za soubor nebo adresář, nikoli za disk.
Nevyžaduje se, pokud argument obsahuje jiné znaky (například oddělovače cest nebo přípony souborů).
-p Určuje počet předplatných přepsání (výchozí hodnota je 1).
-q Tichý režim.
-r Odeberte atribut pouze pro čtení.
-s Rekurzivně procházet podadresáře.
-z Nulové volné místo (vhodné pro optimalizaci virtuálního disku).
-nobanner Nezobrazovat úvodní banner a zprávu o autorských právech.
  • Disky nesmí mít žádné svazky, aby mohly být vyčištěny.
  • Pro písmena jednotky uveďte například .

Jak funguje SDelete

Bezpečné odstranění souboru, který nemá žádné speciální atributy, je relativně jednoduché: zabezpečený program odstranění jednoduše přepíše soubor vzorem bezpečného odstranění. Co je složitější, je bezpečné odstranění systém Windows NT/2K komprimovaných, šifrovaných a řídkých souborů a bezpečné čištění volného místa na disku.

Komprimované, šifrované a řídké se spravují systémem souborů NTFS v 16 blocích clusteru. Pokud program zapíše do existující části takového souboru NTFS nové místo na disku pro uložení nových dat a po napsání nových dat uvolní clustery, které soubor dříve zabíral. Systém souborů NTFS používá tento konzervativní přístup z důvodů souvisejících s integritou dat, a v případě komprimovaných a shustěných souborů, kdyby nové přidělení bylo větší než současné (tzn. nová komprimovaná data jsou větší než stará komprimovaná data). Přepsání takového souboru proto nebude úspěšné při odstranění obsahu souboru z disku.

Pro zpracování těchto typů souborů SDelete spoléhá na defragmentační rozhraní API. Pomocí rozhraní API defragmentace může SDelete přesně určit, které clustery na disku jsou obsazeny daty patřícími ke komprimovaným, řídkým a šifrovaným souborům. Jakmile SDelete ví, které clustery obsahují data souboru, může otevřít disk pro přímý přístup a přepsat tyto clustery.

Čištění volného místa představuje další výzvu. Vzhledem k tomu, že FAT a NTFS neposkytují aplikaci žádné prostředky pro přímou adresu volného místa, má SDelete jednu ze dvou možností. Stejně jako u komprimovaných, řídce ukládaných a šifrovaných souborů, může otevřít disk pro nezpracovaný přístup a přepsat volné místo. Tento přístup trpí velkým problémem: i když byl SDelete naprogramovaný tak, aby byl plně schopný vypočítat volné místo částí jednotek NTFS a FAT (něco, co není triviální), mohlo by dojít ke kolizi s aktivními operacemi se soubory, které probíhají v systému. Řekněme například, že SDelete určuje, že cluster je volný, a právě v tuto chvíli se ovladač systému souborů (FAT, NTFS) rozhodne přidělit cluster pro soubor, který upravuje jiná aplikace. Ovladač systému souborů zapíše nová data do clusteru a potom se SDelete objeví a přepíše nově zapsaná data: nová data souboru jsou pryč. Problém je ještě horší, pokud je cluster přidělen pro metadata systému souborů, protože SDelete poškodí struktury systému souborů na disku.

Druhý přístup, který SDelete používá, je nepřímé přepsání volného místa. Nejprve SDelete přidělí největší soubor, který může. SDelete to provádí pomocí operací vstupně-výstupních souborů, které nevyužívají mezipaměť, takže obsah mezipaměti systému NTFS nebude vyřazen a nahrazen nepotřebnými daty spojenými se souborem SDelete zabírajícím prostor. Vzhledem k tomu, že vstupně-výstupní operace pro soubor bez mezipaměti musí být zarovnány na sektory (512 bajtů), může zbýt nějaký prostor, který není přidělen souboru SDelete, i když SDelete nemůže soubor dále rozšířit. Pokud chce SDelete využít zbývající prostor, přidělí co největší soubor uložený v mezipaměti. U obou těchto souborů SDelete provádí bezpečné přepsání, čímž se zajistí, že veškeré místo na disku, které bylo dříve volné, bude bezpečně vyčištěno.

Na jednotkách NTFS nemusí být úloha SDelete nutně dokončená po přidělení a přepsání zmíněných dvou souborů. SDelete musí také vyplnit všechny existující volné části NTFS MFT (Master File Table) takovými soubory, které se vejdou do záznamu MFT. Záznam MFT má obvykle velikost 1 kB a každý soubor nebo adresář na disku vyžaduje alespoň jeden záznam MFT. Malé soubory se ukládají zcela v rámci svého záznamu MFT, zatímco soubory, které se nevejdou do záznamu, se přidělují clustery mimo MFT. Vše, co musí SDelete udělat, aby se postaral o volný prostor MFT, je přidělit největší soubor, který může – když soubor zabírá veškeré dostupné místo v MFT Record, NTFS zabrání tomu, aby se soubor zvětšil, protože na disku nezbyly žádné volné clustery (jsou drženy dvěma soubory předtím přidělenými SDelete). SDelete pak tento proces zopakuje. Když SDelete už nemůže ani vytvořit nový soubor, ví, že všechny dříve bezplatné záznamy v MFT byly zcela vyplněny bezpečně přepsánými soubory.

Chcete-li přepsat názvy souborů odstraněného souboru, přejmenuje SDelete soubor 26krát, pokaždé, když nahradí každý znak názvu souboru následným abecedním znakem. Například první přejmenování foo.txt bude na AAA. AAA".

Důvodem, proč SDelete při čištění volného místa na disku bezpečně neodstraní názvy souborů, je, že jejich odstranění by vyžadovalo přímou manipulaci s adresářovými strukturami. Adresářové struktury můžou obsahovat volné místo obsahující odstraněné názvy souborů, ale volné místo v adresáři není k dispozici pro přidělení jiným souborům. Proto SDelete nemá žádný způsob přidělování tohoto volného místa, aby ho mohl bezpečně přepsat.

StáhnoutSDelete(328 KB)

Běží na:

  • Klient: Windows 10 a vyšší.
  • Server: Windows Server 2012 a vyšší.
  • Nano Server: 2016 a novější.