SDelete v2.05

Tarafından Mark Russinovich

Yayımlanma Tarihi: 29 Eylül 2023

DownloadSDelete'i indirin(304 KB)

Giriş

Windows NT/2000'in (Win2K) C2 uyumluluğunun bir özelliği nesne yeniden kullanım koruması uygulamasıdır. Bu, bir uygulama dosya alanı veya sanal bellek ayırdığında, Windows NT/2K'nin daha önce bu dosya için ayırmış olduğu kaynaklarda depolanan verileri görüntüleyemediği anlamına gelir. Windows NT belleği sıfır doldurur ve disk üzerindeki kesimleri sıfırlar ve bir dosyanın uygulamaya her iki kaynak türünü de sunmadan önce yerleştirildiği kesimleri sıfırlar. Ancak, nesne yeniden kullanımı, bir dosyanın silinmeden önce kapacağı alanın sıfırlanması gerektiğini dikte etmez. Bunun nedeni, Windows NT/2K'nin işletim sisteminin sistem kaynaklarına erişimi denetlediği varsayımıyla tasarlanmış olmasıdır. Ancak, işletim sistemi etkin olmadığında, işletim sisteminin serbest bırakılmış olduğu verileri görüntülemek ve kurtarmak için ham disk düzenleyicilerini ve kurtarma araçlarını kullanmak mümkündür. Win2K'nin Şifreleme Dosya Sistemi (EFS) ile dosyaları şifreleseniz bile, dosyanın şifrelenmiş yeni bir sürümü oluşturulduktan sonra dosyanın özgün şifrelenmemiş dosya verileri diskte bırakılır.

Silinen dosyaların ve EFS ile şifrelediğiniz dosyaların kurtarmadan güvenli olmasını sağlamanın tek yolu güvenli bir silme uygulaması kullanmaktır. Güvenli silme uygulamaları, disk verilerini kurtarılamaz hale getirmek için gösterilen teknikleri kullanarak silinmiş bir dosyanın diskteki verilerinin üzerine yazar, hatta manyetik medyada zayıf silinmiş dosyaları ortaya çıkarabilen desenleri okuyabilen kurtarma teknolojisini kullanır. SDelete (Güvenli Silme) böyle bir uygulamadır. SDelete'i hem mevcut dosyaları güvenli bir şekilde silmek hem de diskin ayrılmamış bölümlerinde bulunan tüm dosya verilerini (zaten sildiğiniz veya şifrelediğiniz dosyalar dahil) güvenli bir şekilde silmek için kullanabilirsiniz. SDelete, standart DOD 5220.22-M'yi temizlemek ve temizlemek için Savunma Bakanlığı'nı uygulayarak SDelete ile silindikten sonra dosya verilerinizin sonsuza kadar silindiği konusunda size güven verir. SDelete'in dosya verilerini güvenli bir şekilde sildiğini, ancak boş disk alanında bulunan dosya adlarını silmediğini unutmayın.

SDelete kullanma

SDelete , bir dizi seçenek alan bir komut satırı yardımcı programıdır. Herhangi bir kullanımda, bir veya daha fazla dosya ve/veya dizin silmenize veya mantıksal diskteki boş alanı temizlemenize olanak tanır. SDelete , dizin veya dosya tanımlayıcısının bir parçası olarak joker karakterleri kabul eder.

Kullanım:

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 [...]>
Parametre Tanım
-c Boş alanı temizleyin.
-F Yalnızca harf içeren bağımsız değişkenlerin disk yerine dosya/dizin olarak değerlendirilmesini zorlar.
Bağımsız değişken başka karakterler içeriyorsa (örneğin yol ayırıcıları veya dosya uzantıları) gerekli değildir.
-P Üzerine yazma geçişi sayısını belirtir (varsayılan değer 1'dir).
-S Sessiz mod.
-r Salt Okunur özniteliğini kaldırın.
-s Alt dizinleri yinele.
-Z Sıfır boş alan (sanal disk iyileştirme için iyidir).
-nobanner Başlangıç başlığını ve telif hakkı iletisini görüntülemeyin.
  • Disklerin temizlenebilmesi için herhangi bir birim olmaması gerekir.
  • Sürücü harfleri için, örneğin D:, ekleyin:.

SDelete Nasıl Çalışır?

Özel öznitelikleri olmayan bir dosyayı güvenli bir şekilde silmek oldukça kolaydır: Güvenli silme programı, güvenli silme düzeniyle dosyanın üzerine yazar. Daha karmaşık olan, Windows NT/2K sıkıştırılmış, şifrelenmiş ve seyrek dosyaları güvenli bir şekilde silmek ve disk boş alanlarını güvenli bir şekilde temizlemektir.

Sıkıştırılmış, şifrelenmiş ve seyrek, 16 kümeli bloklarda NTFS tarafından yönetilir. Bir program, ntfs gibi bir dosyanın mevcut bir bölümüne yazarsa, yeni verileri depolamak için diskte yeni alan ayırır ve yeni veriler yazıldıktan sonra, daha önce dosya tarafından kaplanmış kümeleri serbest bırakın. NTFS, veri bütünlüğüyle ilgili nedenlerle ve sıkıştırılmış ve seyrek dosyalar söz konusu olduğunda, yeni ayırmanın var olandan daha büyük olması durumunda (yeni sıkıştırılmış veriler eski sıkıştırılmış verilerden daha büyüktür) bu muhafazakar yaklaşımı benimser. Bu nedenle, böyle bir dosyanın üzerine yazılması, dosyanın içeriğini diskten silmede başarılı olmaz.

Bu tür dosyaları işlemek için SDelete birleştirme API'sine dayanır. Birleştirme API'sini kullanarak SDelete, disk üzerindeki hangi kümelerin sıkıştırılmış, seyrek ve şifrelenmiş dosyalara ait verilerle dolu olduğunu tam olarak belirleyebilir. SDelete, dosyanın verilerini hangi kümelerin içerdiğini öğrendiğinde, ham erişim için diski açabilir ve bu kümelerin üzerine yazabilir.

Boş alanın temizlenmesi başka bir zorluk sunar. FAT ve NTFS, bir uygulamanın boş alanı doğrudan ele almasına olanak sağlamadığından, SDelete'in iki seçeneği vardır. Birincisi, sıkıştırılmış, seyrek ve şifrelenmiş dosyalar için olduğu gibi diski ham erişim için açabilir ve boş alanın üzerine yazabilir. Bu yaklaşım büyük bir sorundan muzdariptir: SDelete NTFS ve FAT sürücülerinin boş alan bölümlerini (önemsiz bir şey) tam olarak hesaplayabilecek şekilde kodlanmış olsa bile, sistemde gerçekleşen etkin dosya işlemleriyle çakışma riski taşır. Örneğin, SDelete'in bir kümenin ücretsiz olduğunu belirlediğini ve tam o anda dosya sistemi sürücüsünün (FAT, NTFS) kümeyi başka bir uygulamanın değiştireceği bir dosya için ayırmaya karar vereceğini düşünelim. Dosya sistemi sürücüsü yeni verileri kümeye yazar ve ardından SDelete gelir ve yeni yazılmış verilerin üzerine yazar: dosyanın yeni verileri yok olur. SDelete dosya sisteminin disk üzerindeki yapılarını bozacağı için küme dosya sistemi meta verileri için ayrılmışsa sorun daha da kötüdür.

İkinci yaklaşım ve SDelete'in aldığı yaklaşım, dolaylı olarak boş alanın üzerine yazmaktır. İlk olarak, SDelete en büyük dosyayı ayırır. SDelete bunu önbelleğe alınmamış dosya G/Ç kullanarak yapar, böylece NT dosya sistemi önbelleğinin içeriği dışarı atılmaz ve yerine SDelete'in alan boşaltma dosyasıyla ilişkili gereksiz verilerle değiştirilir. Önbelleğe alınmamış dosya G/Ç'sinin kesim (512 bayt) hizalanmış olması gerektiğinden, SDelete dosyayı daha fazla büyütemediğinde bile SDelete dosyası için ayrılmamış kalan bir alan olabilir. Kalan herhangi bir alanı almak için SDelete daha sonra önbelleğe alınmış en büyük dosyayı ayırır. Bu dosyaların her ikisi için de SDelete güvenli bir üzerine yazma gerçekleştirir ve daha önce boş olan tüm disk alanının güvenli bir şekilde temizlenmesini sağlar.

NTFS sürücülerinde SDelete'in işi, iki dosyayı ayırıp üzerine yazdıktan sonra geçemez. SDelete , NTFS MFT'sinin (Ana Dosya Tablosu) mevcut ücretsiz bölümlerini de bir MFT kaydına sığan dosyalarla doldurmalıdır. MFT kaydının boyutu genellikle 1 KB'tır ve diskteki her dosya veya dizin için en az bir MFT kaydı gerekir. Küçük dosyalar tamamen MFT kaydı içinde depolanırken, bir kayda sığmayan dosyalar MFT dışında kümeler ayrılır. Boş MFT alanıyla ilgilenmek için tüm SDelete'in yapması gerekenler, mümkün olan en büyük dosyayı ayırmaktır - dosya bir MFT Kaydındaki tüm kullanılabilir alanı kapladığında NTFS, diskte boş küme kalmadığından (daha önce ayrılmış iki SDelete dosyası tarafından tutulmaktadırlar) dosyanın büyütülmesini engeller. SDelete işlemi tekrarlar. SDelete artık yeni bir dosya oluşturamadığında, MFT'deki daha önce boş olan tüm kayıtların tamamen güvenli bir şekilde üzerine yazılan dosyalarla doldurulduğunu bilir.

SDelete, sildiğiniz bir dosyanın dosya adlarının üzerine yazmak için dosyayı 26 kez yeniden adlandırır ve her seferinde dosya adının her karakterini ardışık alfabetik bir karakterle değiştirir. Örneğin, "foo.txt" dosyasının ilk yeniden adı "AAA" olacaktır. AAA".

Disk boş alanını temizlerken SDelete'in dosya adlarını güvenli bir şekilde silmemesinin nedeni, bunların silinmesi için dizin yapılarının doğrudan değiştirilmesi gerekmesidir. Dizin yapılarının silinmiş dosya adlarını içeren boş alanı olabilir, ancak boş dizin alanı diğer dosyalara ayırma için kullanılamaz. Bu nedenle, SDelete'in bu boş alanı güvenli bir şekilde üzerine yazabilmesi için ayırma yolu yoktur.

DownloadSDelete'i indirin(304 KB)

Çalıştırma tarihi:

  • İstemci: Windows 10 ve üzeri.
  • Sunucu: Windows Server 2012 ve üzeri.
  • Nano Sunucu: 2016 ve üzeri.