Efiguard adalah bootkit UEFI X64 portabel yang menambal Windows Boot Manager, boot loader, dan kernel pada waktu boot untuk menonaktifkan PatchGuard dan Driver Signature Enforcement (DSE).
Jika Anda hanya ingin mencoba Efiguard, lewati untuk digunakan.
Saat ini mendukung semua versi Windows X64 yang kompatibel dengan EFI yang pernah dirilis, dari Vista SP1 ke Windows 11.
Mudah digunakan: Dapat di -boot dari USB Stick atau partisi Windows EFI melalui loader yang secara otomatis menemukan dan boot Windows. Driver juga dapat dimuat dan dikonfigurasi secara manual menggunakan shell uefi atau loader.
Memanfaatkan perpustakaan Zydis Disassembler secara ekstensif untuk decoding instruksi runtime cepat untuk mendukung analisis yang lebih kuat daripada apa yang mungkin dengan pencocokan tanda tangan, yang seringkali membutuhkan perubahan dengan pembaruan OS baru.
Bekerja secara pasif: Driver tidak memuat atau memulai Windows Boot Manager. Alih -alih bertindak berdasarkan beban bootmgfw.efi oleh Firmware Boot Manager melalui menu pemilihan boot atau aplikasi EFI seperti loader. Jika OS non-windows di-boot, driver akan secara otomatis menurunkan dirinya sendiri.
Mendukung tambalan empat tahap untuk saat bootmgfw.efi mulai bootmgr.efi daripada winload.efi . Ini adalah kasus ketika file WIM dimuat ke boot Winpe, Windows Setup atau Windows Recovery Mode.
Pemulihan yang anggun: Dalam hal kegagalan tambalan, driver akan menampilkan informasi kesalahan dan meminta untuk terus boot atau untuk me -reboot dengan menekan ESC. Ini benar bahkan hingga tahap tambalan kernel terakhir, karena tahap tambalan terakhir terjadi sebelum ExitBootServices disebut. Banyak windows uefi bootkit mengaitkan OslArchTransferToKernel yang, meskipun mudah ditemukan berdasarkan pencocokan pola, adalah fungsi yang dijalankan dalam mode yang dilindungi setelah ExitBootServices . Ini berarti tidak ada layanan boot yang tersedia untuk memberi tahu pengguna bahwa ada yang salah. Sementara Efiguard adalah bootkit UEFI, itu tidak dimulai sebagai satu. Efiguard pada awalnya adalah patcher on-disk yang berjalan di NT (mirip dengan Upgdsed), dimaksudkan untuk menguji kelayakan aproach berbasis disassembler, sebagai lawan menggunakan simbol PDB dan tanda tangan khusus versi. Patchntoskrnl.c masih terlihat sangat mirip dengan desain asli ini. Hanya setelah pendekatan ini terbukti berhasil, tanpa modifikasi pada kode yang diperlukan dalam lebih dari satu tahun pembaruan Windows, apakah UEFI masuk ke dalam gambar sebagai cara untuk lebih meningkatkan kemampuan dan kemudahan penggunaan.
Beberapa manfaat yang diberikan oleh pendekatan bootkit meliputi:
bcdedit .ImgpValidateImageHash (meskipun ini masih dilakukan secara opsional).db . Inkarnasi awal Efiguard sebagai bootkit adalah upaya untuk membuat UEFI-bootkit Dude719 bekerja dengan versi Windows 10 baru-baru ini, karena telah menjadi tanggal dan tidak lagi bekerja pada versi terbaru (seperti Upgdsed, sering disebabkan oleh pemindaian pola yang sensitif terhadap versi). Sementara saya akhirnya berhasil, saya tidak puas dengan hasilnya sebagian besar karena pilihan mengaitkan OslArchTransferToKernel , yang sebagaimana disebutkan di atas dieksekusi dalam mode yang dilindungi dan setelah ExitBootServices dipanggil. Terlepas dari ini, saya tidak puas hanya dengan bisa menambal beberapa versi Windows 10; Saya ingin bootkit bekerja pada setiap versi Windows X64 yang kompatibel dengan EFI hingga saat ini. Karena itu, saya menulis ulang bootkit dari awal dengan tujuan berikut:
Gambaran gambaran besar dari aliran boot Efiguard akhir ditampilkan dalam diagram di atas. Untuk kait dan tambalan khusus komponen, lihat EfiGuardDxe/PatchXxx.c di file sumber. Untuk inisialisasi/pembongkaran driver dan kait layanan boot dan runtime EFI, lihat Efiguarddxe.c.
Efiguard dilisensikan di bawah GPLV3. File dalam submodule EfiGuardDxe/Zydis dilisensikan di bawah lisensi MIT.