Efiguard เป็น bootkit X64 UEFI แบบพกพาที่แก้ไข Windows Boot Manager, Boot Loader และเคอร์เนลในเวลาบูตเพื่อปิดใช้งาน PatchGuard และการบังคับใช้ลายเซ็นไดรเวอร์ (DSE)
หากคุณแค่ต้องการลอง Efiguard ให้ข้ามไปใช้
ปัจจุบันรองรับ Windows X64 รุ่นที่เข้ากันได้กับ EFI ทั้งหมดจาก Vista SP1 ถึง Windows 11
ใช้งานง่าย: สามารถบูทได้จากแท่ง USB หรือพาร์ติชัน Windows EFI ผ่านตัวโหลดที่ค้นหาและบูท Windows โดยอัตโนมัติ ไดรเวอร์ยังสามารถโหลดและกำหนดค่าด้วยตนเองโดยใช้เชลล์ UEFI หรือตัวโหลด
ใช้ประโยชน์จากไลบรารี Disassembler ของ Zydis อย่างกว้างขวางสำหรับการถอดรหัสคำสั่งรันไทม์ที่รวดเร็วเพื่อรองรับการวิเคราะห์ที่แข็งแกร่งกว่าสิ่งที่เป็นไปได้ด้วยการจับคู่ลายเซ็นซึ่งมักจะต้องมีการเปลี่ยนแปลงด้วยการอัปเดตระบบปฏิบัติการใหม่
ทำงานอย่างอดทน: ไดรเวอร์ไม่โหลดหรือเริ่ม Windows Boot Manager แต่จะทำหน้าที่โหลดของ bootmgfw.efi โดยตัวจัดการบูตเฟิร์มแวร์ผ่านเมนูการเลือกบูตหรือแอปพลิเคชัน EFI เช่นตัวโหลด หากระบบปฏิบัติการที่ไม่ใช่ Windows ถูกบูตไดรเวอร์จะยกเลิกการโหลดโดยอัตโนมัติ
รองรับการแก้ไขสี่ขั้นตอนสำหรับเมื่อ bootmgfw.efi เริ่ม bootmgr.efi มากกว่า winload.efi นี่เป็นกรณีที่ไฟล์ WIM ถูกโหลดเพื่อบูต winpe, การตั้งค่า Windows หรือ Windows Recovery
การกู้คืนที่สง่างาม: ในกรณีที่แพตช์ล้มเหลวไดรเวอร์จะแสดงข้อมูลข้อผิดพลาดและแจ้งให้บูทต่อไปหรือรีบูตโดยกด ESC นี่เป็นความจริงแม้กระทั่งถึงขั้นตอนการแก้ไขเคอร์เนลสุดท้ายเนื่องจากเวทีแพทช์สุดท้ายเกิดขึ้นก่อนที่จะเรียกว่า ExitBootServices UEFI Windows Bootkits จำนวนมากขอ OslArchTransferToKernel ซึ่งในขณะที่ค้นหาได้ง่ายโดยการจับคู่รูปแบบเป็นฟังก์ชั่นที่ดำเนินการในโหมดที่ได้รับการป้องกันหลังจาก ExitBootServices ซึ่งหมายความว่าไม่มีบริการบูตเพื่อบอกผู้ใช้ว่ามีบางอย่างผิดปกติ ในขณะที่ Efiguard เป็น Uefi Bootkit แต่ก็ไม่ได้เริ่มเป็นหนึ่งเดียว Efiguard เดิมเป็นเครื่องเจาะบนดิสก์ที่ทำงานบน NT (คล้ายกับ Upgdsed) ซึ่งมีวัตถุประสงค์เพื่อทดสอบความมีชีวิตของ aproach ที่ใช้เครื่องแยกส่วนซึ่งตรงข้ามกับการใช้สัญลักษณ์ PDB และลายเซ็นเฉพาะรุ่น patchntoskrnl.c ยังคงดูเหมือนการออกแบบดั้งเดิมนี้มาก หลังจากวิธีการนี้ได้รับการพิสูจน์แล้วว่าประสบความสำเร็จโดยไม่มีการปรับเปลี่ยนรหัสที่จำเป็นในการอัปเดต Windows มากกว่าหนึ่งปี UEFI ได้เข้ามาในภาพเพื่อปรับปรุงความสามารถและความสะดวกในการใช้งานต่อไป
ประโยชน์บางอย่างที่ได้รับจากวิธีการ bootkit รวมถึง:
bcdeditImgpValidateImageHash (แม้ว่าจะยังคงเป็นทางเลือก)db Store การจุติเริ่มต้นของ Efiguard ในฐานะ bootkit เป็นความพยายามที่จะได้รับ Uefi-Bootkit ของ Dude719 ในการทำงานกับ Windows 10 รุ่นล่าสุดเพราะมันกลายเป็นวันที่และไม่ทำงานในเวอร์ชันล่าสุดอีกต่อไป ในขณะที่ฉันได้รับสิ่งนี้ในที่สุดฉันก็ไม่พอใจกับผลลัพธ์ส่วนใหญ่เนื่องจากทางเลือกของการเชื่อมต่อ OslArchTransferToKernel ซึ่งดังที่ระบุไว้ข้างต้นดำเนินการในโหมดป้องกันและหลังจาก ExitBootServices ถูกเรียก นอกเหนือจากนี้ฉันไม่พอใจกับความสามารถในการแก้ไข Windows 10 รุ่นเท่านั้น ฉันต้องการให้ bootkit ทำงานกับ Windows X64 รุ่นที่เข้ากันได้กับ EFI ทุกรุ่นที่ปล่อยออกมาจนถึงปัจจุบัน ด้วยเหตุนี้ฉันจึงเขียน Bootkit ใหม่ตั้งแต่เริ่มต้นด้วยจุดมุ่งหมายต่อไปนี้:
ภาพรวมภาพรวมของโฟลว์บูต efiguard สุดท้ายจะแสดงในแผนภาพด้านบน สำหรับตะขอและแพตช์เฉพาะส่วนประกอบแต่ละรายการให้ดูที่ EfiGuardDxe/PatchXxx.c ในไฟล์ต้นฉบับ สำหรับการเริ่มต้นไดรเวอร์/การขนถ่ายและ EFI Boot and Runtime Services Hooks โปรดดูที่ efiguarddxe.c
Efiguard ได้รับใบอนุญาตภายใต้ GPLV3 ไฟล์ใน submodule EfiGuardDxe/Zydis ได้รับอนุญาตภายใต้ใบอนุญาต MIT