Saya mencoba dua alat berbeda untuk mengedit dan menghapus semua node dari kumpulan registri Windows:
chntpw
yang pada dasarnya dirancang untuk mengedit file kata sandi (SAM), tetapi sekarang memiliki shell interaktif untuk mengedit file registri.hivex
yang lebih mutakhir dan terutama ditujukan untuk mengedit registri keperluan umum.
Hanya untuk memiliki gagasan tentang perbedaan antara program-program ini, saya mengambil file BCD saya (yang digunakan oleh Windows Boot Manager), dan menggunakan kedua program ini untuk menghapus semua node.
Seperti yang diharapkan, file yang dihasilkan memiliki ukuran yang sama tetapi tidak identik. Ketika saya membuka masing-masing dengan salah satu hivex
atau chntpw
, kedua editor menunjukkan 0 node untuk kedua file.
Namun, ketika saya membuka hivex
file, file yang seharusnya memiliki 0 node, saya melihat data sisa dari keadaan sebelumnya.
Sebaliknya, chntpw
hasil tidak memiliki data residual dari node.
Sekarang, saya sedang mendidik diri sendiri tentang format file registri, jadi saya harus bertanya:
Jika saya menggunakan satu, yang mana yang harus saya pilih? Saya jelas ingin mensimulasikan perilaku parser / penulis Microsoft paling realistis (saya ingin bisa mengelabui mereka). Begitu juga data sisa memiliki signifikansi apa pun; apakah Windows Boot Manager akan memberikan kesalahan jika saya gunakan hivex
untuk membuat file BCD palsu?
PS: Pertanyaannya tidak tergantung pada tujuan utama saya, yang saya harap sudah jelas: Saya ingin memperbaiki / membuat file BCD (Boot Config Data) tanpa menggunakan installer Windows resmi. Jadi, jika Anda memiliki saran ke arah itu, jangan ragu untuk memberi.
sumber
regedit
tidak perlu dipertanyakan.Jawaban:
Hivex dirancang secara eksplisit untuk tidak menghapus data lama dari file. Ini adalah tujuan penting karena format kumpulan registri tidak terdokumentasi dan tidak ada seorang pun kecuali MSFT yang benar-benar mengerti cara kerjanya, dan kami tidak ingin menghancurkan data dalam proses membuat perubahan.
Catatan ini tidak berarti bahwa hivex tidak dapat menghapus node. Anda dapat menghapus node melalui API dan node tersebut tidak akan terlihat oleh panggilan registri Windows biasa, tetapi tidak ada data yang dihapus / dihapus / terpotong dari file yang mendasarinya.
Jika Anda ingin file sarang kosong, saya sarankan memulai dengan file sarang kosong. Ada file sarang kosong dalam kode sumber hivex (disebut 'minimal') yang dapat Anda gunakan.
sumber