SDelete v2.05
Oleh Mark Russinovich
Diterbitkan: 29 September 2023
Unduh SDelete (304 KB)
Salah satu fitur kepatuhan C2 Windows NT/2000 (Win2K) adalah menerapkan perlindungan penggunaan kembali objek. Ini berarti bahwa ketika aplikasi mengalokasikan ruang file atau memori virtual, aplikasi tidak dapat melihat data yang sebelumnya disimpan dalam sumber daya yang dialokasikan Windows NT/2K untuk itu. Windows NT mengisi memori nol dan nol sektor pada disk tempat file ditempatkan sebelum menyajikan salah satu jenis sumber daya ke aplikasi. Namun, penggunaan kembali objek tidak menentukan bahwa ruang yang ditempati file sebelum dihapus menjadi nol. Ini karena Windows NT/2K dirancang dengan asumsi bahwa sistem operasi mengontrol akses ke sumber daya sistem. Namun, ketika sistem operasi tidak aktif, dimungkinkan untuk menggunakan editor disk mentah dan alat pemulihan untuk melihat dan memulihkan data yang telah dibatalkan alokasi sistem operasinya. Bahkan ketika Anda mengenkripsi file dengan Sistem File Enkripsi Win2K (EFS), data file asli yang tidak terenkripsi file dibiarkan di disk setelah versi terenkripsi baru file dibuat.
Satu-satunya cara untuk memastikan bahwa file yang dihapus, serta file yang Anda enkripsi dengan EFS, aman dari pemulihan adalah dengan menggunakan aplikasi penghapusan yang aman. Aplikasi penghapusan aman menimpa data pada disk file yang dihapus menggunakan teknik yang ditunjukkan untuk membuat data disk tidak dapat dipulihkan, bahkan menggunakan teknologi pemulihan yang dapat membaca pola di media magnetik yang mengungkapkan file yang dihapus dengan lemah. SDelete (Penghapusan Aman) adalah aplikasi seperti itu. Anda dapat menggunakan SDelete untuk menghapus file yang ada dengan aman, serta menghapus data file apa pun yang ada di bagian disk yang tidak dialokasikan dengan aman (termasuk file yang telah Anda hapus atau enkripsi). SDelete mengimplementasikan Kliring Departemen Pertahanan dan pembersihan standar DOD 5220.22-M, untuk memberi Anda keyakinan bahwa setelah dihapus dengan SDelete, data file Anda hilang selamanya. Perhatikan bahwa SDelete menghapus data file dengan aman, tetapi bukan nama file yang terletak di ruang disk kosong.
SDelete adalah utilitas baris perintah yang mengambil sejumlah opsi. Dalam penggunaan tertentu, ini memungkinkan Anda untuk menghapus satu atau beberapa file dan/atau direktori, atau untuk membersihkan ruang kosong pada disk logis. SDelete menerima karakter kartubebas sebagai bagian dari direktori atau penentu file.
Penggunaan:
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 [...]>
Parameter | Deskripsi |
---|---|
-c | Bersihkan ruang kosong. |
-f | Paksa argumen yang hanya berisi huruf yang akan diperlakukan sebagai file/direktori daripada disk. Tidak diperlukan jika argumen berisi karakter lain (pemisah jalur atau ekstensi file misalnya). |
-p | Menentukan jumlah pass overwrite (defaultnya adalah 1). |
-q | Mode tenang. |
-r | Hapus atribut Baca-Saja. |
-s | Subdirektori berulang. |
-z | Nol ruang kosong (baik untuk pengoptimalan disk virtual). |
-nobanner | Jangan tampilkan spanduk startup dan pesan hak cipta. |
- Disk tidak boleh memiliki volume apa pun untuk dibersihkan.
- Untuk huruf kandar, sertakan
:
, misalnyaD:
.
Menghapus file dengan aman yang tidak memiliki atribut khusus relatif lurus ke depan: program penghapusan aman hanya menimpa file dengan pola penghapusan aman. Yang lebih rumit adalah menghapus file Windows NT/2K terkompresi, terenkripsi, dan jarang dengan aman, serta membersihkan ruang kosong disk dengan aman.
Terkompresi, terenkripsi, dan jarang dikelola oleh NTFS dalam blok 16 kluster. Jika program menulis ke bagian yang ada dari file tersebut NTFS mengalokasikan ruang baru pada disk untuk menyimpan data baru dan setelah data baru ditulis, batalkan alokasi kluster yang sebelumnya ditempati oleh file. NTFS mengambil pendekatan konservatif ini karena alasan yang terkait dengan integritas data, dan dalam kasus file terkompresi dan jarang, jika alokasi baru lebih besar dari apa yang ada (data terkompresi baru lebih besar dari data terkompresi lama). Dengan demikian, menimpa file seperti itu tidak akan berhasil menghapus konten file dari disk.
Untuk menangani jenis file ini, SDelete bergantung pada API defragmentasi. Dengan menggunakan API defragmentasi, SDelete dapat menentukan dengan tepat kluster mana pada disk yang ditempati oleh data milik file terkompresi, jarang, dan terenkripsi. Setelah SDelete mengetahui kluster mana yang berisi data file, SDelete dapat membuka disk untuk akses mentah dan menimpa kluster tersebut.
Membersihkan ruang kosong menghadirkan tantangan lain. Karena FAT dan NTFS tidak menyediakan sarana bagi aplikasi untuk langsung mengatasi ruang kosong, SDelete memiliki salah satu dari dua opsi. Yang pertama adalah dapat, seperti halnya untuk file terkompresi, jarang, dan terenkripsi, membuka disk untuk akses mentah dan menimpa ruang kosong. Pendekatan ini menderita masalah besar: bahkan jika SDelete dikodekan untuk sepenuhnya mampu menghitung bagian ruang kosong drive NTFS dan FAT (sesuatu yang tidak sepele), itu akan menjalankan risiko tabrakan dengan operasi file aktif yang terjadi pada sistem. Misalnya, SDelete menentukan bahwa kluster gratis, dan pada saat itu driver sistem file (FAT, NTFS) memutuskan untuk mengalokasikan kluster untuk file yang dimodifikasi aplikasi lain. Driver sistem file menulis data baru ke kluster, lalu SDelete datang dan menimpa data yang baru ditulis: data baru file hilang. Masalahnya bahkan lebih buruk jika kluster dialokasikan untuk metadata sistem file karena SDelete akan merusak struktur on-disk sistem file.
Pendekatan kedua, dan yang diambil SDelete , adalah secara tidak langsung menimpa ruang kosong. Pertama, SDelete mengalokasikan file terbesar yang dapat dialokasikan. SDelete melakukan ini menggunakan I/O file yang tidak di-cache sehingga konten cache sistem file NT tidak akan dibuang dan diganti dengan data yang tidak berguna yang terkait dengan file hogging ruang SDelete. Karena I/O file yang tidak di-cache harus diratakan sektor (512-byte), mungkin ada beberapa ruang sisa yang tidak dialokasikan untuk file SDelete bahkan ketika SDelete tidak dapat menumbuhkan file lebih lanjut. Untuk mengambil ruang yang tersisa, SDelete selanjutnya mengalokasikan file cache terbesar yang dapat dilakukannya. Untuk kedua file ini SDelete melakukan penimpaan yang aman, memastikan bahwa semua ruang disk yang sebelumnya bebas menjadi dibersihkan dengan aman.
Pada NTFS, tugas SDelete tidak selalu melalui setelah mengalokasikan dan menimpa dua file. SDelete juga harus mengisi bagian gratis yang ada dari MFT NTFS (Tabel File Master) dengan file yang sesuai dalam catatan MFT. Catatan MFT biasanya berukuran 1KB, dan setiap file atau direktori pada disk memerlukan setidaknya satu rekaman MFT. File kecil disimpan sepenuhnya dalam catatan MFT mereka, sementara file yang tidak cocok dalam rekaman dialokasikan kluster di luar MFT. Semua yang harus dilakukan SDelete untuk mengurus ruang MFT gratis mengalokasikan file terbesar yang dapat dilakukannya - ketika file menempati semua ruang yang tersedia dalam MFT Record NTFS akan mencegah file menjadi lebih besar, karena tidak ada kluster gratis yang tersisa di disk (mereka ditahan oleh dua file SDelete yang sebelumnya dialokasikan). SDelete kemudian mengulangi proses. Ketika SDelete bahkan tidak dapat lagi membuat file baru, SDelete tahu bahwa semua rekaman gratis sebelumnya dalam MFT telah sepenuhnya diisi dengan file yang ditimpa dengan aman.
Untuk menimpa nama file yang Anda hapus, SDelete mengganti nama file 26 kali, setiap kali mengganti setiap karakter nama file dengan karakter alfabet berturut-turut. Misalnya, penggantian nama pertama "foo.txt" adalah menjadi "AAA. AAA".
Alasan bahwa SDelete tidak menghapus nama file dengan aman saat membersihkan ruang kosong disk adalah bahwa menghapusnya akan memerlukan manipulasi langsung struktur direktori. Struktur direktori dapat memiliki ruang kosong yang berisi nama file yang dihapus, tetapi ruang direktori kosong tidak tersedia untuk alokasi ke file lain. Oleh karena itu, SDelete tidak memiliki cara untuk mengalokasikan ruang kosong ini sehingga dapat menimpanya dengan aman.
Unduh SDelete (304 KB)
Berjalan pada:
- Klien: Windows 10 dan yang lebih tinggi.
- Server: Windows Server 2012 dan yang lebih tinggi.
- Nano Server: 2016 dan yang lebih tinggi.