Aracılığıyla paylaş


SDelete v2.06

Tarafından Mark Russinovich

Yayımlanma Tarihi: 5 Mart 2026

İndirSDelete(328 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, Savunma Bakanlığı'nın DOD 5220.22-M temizleme ve silme standardını uygulayarak, dosya verilerinizin SDelete ile silindikten sonra sonsuza dek kaybolduğundan emin olmanızı sağlar. 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 Açıklama
-c Boş alanı temizleyin.
-f Yalnızca harf içeren bağımsız değişkenlerin disk yerine dosya/dizin olarak değerlendirilmesini zorlar.
Argüman başka karakterler (örneğin yol ayırıcıları veya dosya uzantıları) içeriyorsa gerekli olması söz konusu değildir.
-p Üzerine yazma geçişi sayısını belirtir (varsayılan değer 1'dir).
-q 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, üzerinde hiçbir birim bulunmamalıdır.
  • Sürücü harfleri için, örneğin , 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 dosya sistemine ait bir dosyanın mevcut bir bölümüne yazdığında, NTFS yeni verileri depolamak için disk üzerinde yeni alan ayırır ve yeni veri yazıldıktan sonra, daha önce dosya tarafından kullanılan kümeleri serbest bırakır. 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, diski ham erişime 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 yaptığı gibi, diski ham erişim amacıyla 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 oluşturabileceği en büyük dosyayı atfeder. SDelete, bunu önbelleğe alınmamış dosya I/Ç kullanarak yapar, böylece NT dosya sistemi önbelleğinin içeriği dışarı atılmaz ve yerine SDelete'in çok yer kaplayan dosyasıyla ilişkili gereksiz verilerle değiştirilmez. Önbelleksiz dosya G/Ç'sinin sektör (512 bayt) hizalı olması gerektiğinden, SDelete dosyası daha fazla büyüyemediğinde bile henüz SDelete dosyasına ayrılmamış bir alan kalabilir. 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 mutlaka tamamlanmış olmayabilir. 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 tahsis edilerek depolanır. SDelete yalnızca boş MFT alanını yönetmek için yapması gereken şey, yapabileceği en büyük dosyayı ayırmaktır. Bir dosya bir MFT Kayıtındaki tüm kullanılabilir alanı kapladığında, NTFS dosyanın daha fazla büyümesini engeller, çünkü diskte artık boş küme kalmamıştır (bunlar daha önce SDelete tarafından ayrılmış olan iki dosya tarafından tutulmaktadır). 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 adlandırılması "AAA.AAA" olacaktır.

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.

İndirSDelete(328 KB)

Çalıştırma tarihi:

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