
Hyperdbg Debugger เป็นโอเพนซอร์ซโอเพนซอร์ซที่ขับเคลื่อนด้วยชุมชนไฮเปอร์ไวเซอร์ช่วยโหมดผู้ใช้และดีบั๊ก Windows โหมดเคอร์เนลโดยมุ่งเน้นที่การใช้เทคโนโลยีฮาร์ดแวร์ที่ทันสมัย มันเป็นตัวดีบั๊กที่ออกแบบมาสำหรับการวิเคราะห์การฟอกและการย้อนกลับ
คุณสามารถติดตาม Hyperdbg บน Twitter หรือ Mastodon เพื่อรับการแจ้งเตือนเกี่ยวกับรุ่นใหม่หรือเข้าร่วมกลุ่ม Hyperdbg ใด ๆ ที่คุณสามารถขอให้นักพัฒนาและผู้ที่ชื่นชอบการกลับรายการโอเพนซอร์ซเพื่อขอความช่วยเหลือและใช้ HyperDBG
Hyperdbg ได้รับการออกแบบโดยมุ่งเน้นที่การใช้เทคโนโลยีฮาร์ดแวร์ที่ทันสมัยเพื่อมอบคุณสมบัติใหม่ให้กับโลกของ Debuggers มันทำงานที่ด้านบนของ Windows โดยการเสมือนระบบที่กำลังทำงานอยู่แล้วโดยใช้ Intel VT-X และ EPT ดีบักเกอร์นี้มีจุดมุ่งหมายที่จะไม่ใช้ APIs และกลไกการดีบักซอฟต์แวร์ใด ๆ แต่แทนที่จะใช้ตารางหน้าเลเยอร์ที่สอง (หรือตารางหน้าขยายหรือ EPT) อย่างกว้างขวางเพื่อตรวจสอบทั้งเคอร์เนลและการดำเนินการของผู้ใช้
การใช้ TLB-splitting และการมีคุณสมบัติเช่นการวัดความครอบคลุมของรหัสและการตรวจสอบ MOV ทั้งหมดไป/จากหน่วยความจำโดยฟังก์ชั่นทำให้ HyperDBG เป็นดีบักเกอร์ที่ไม่ซ้ำกัน
แม้ว่ามันจะมีคุณสมบัติใหม่ แต่ Hyperdbg ก็พยายามที่จะหลบซ่อนตัวที่สุดเท่าที่จะทำได้ มันไม่ได้ใช้ APIs การดีบักใด ๆ ในการดีบักหน้าต่างหรือแอปพลิเคชันใด ๆ ดังนั้นวิธีการต่อต้านการลดทอนแบบคลาสสิกจะไม่ตรวจจับ นอกจากนี้ยังต่อต้านการแสวงหาผลประโยชน์ของวิธีเดลต้าเวลา (เช่น RDTSC/RDTSCP) เพื่อตรวจจับการมีอยู่ของไฮเปอร์ไวเซอร์ดังนั้นจึงทำให้ยากขึ้นสำหรับการใช้งานแพคเกอร์ผู้ปกป้องมัลแวร์
คุณสามารถดาวน์โหลดไฟล์ไบนารีที่รวบรวมได้ล่าสุดจาก รุ่น มิฉะนั้นหากคุณต้องการสร้าง Hyperdbg คุณควรโคลน Hyperdbg ด้วยธง --recursive
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
กรุณาเยี่ยมชม build & ติดตั้ง และ เริ่มต้นอย่างรวดเร็ว สำหรับคำอธิบายโดยละเอียดเกี่ยวกับวิธีเริ่มต้นด้วย Hyperdbg นอกจากนี้คุณยังสามารถดู คำถามที่พบบ่อย สำหรับข้อมูลเพิ่มเติมหรือหากก่อนหน้านี้คุณเคยใช้ debuggers พื้นเมืองอื่น ๆ เช่น GDB, LLDB หรือ Windbg คุณสามารถดูแผนที่คำสั่ง
OpenSecurityTraining2 ของซีรี่ส์การสอน "การย้อนกลับด้วย HyperDBG (DBG3301) " มีอยู่ใน เว็บไซต์ของ OST2 ( Preferred ) และ YouTube เป็นวิธีที่แนะนำในการเริ่มต้นและเรียนรู้ HyperDBG มันจะแนะนำคุณผ่านขั้นตอนเริ่มต้นของการใช้ hyperdbg ครอบคลุมแนวคิดที่จำเป็นหลักการและฟังก์ชันการดีบักพร้อมกับตัวอย่างที่ใช้งานได้จริงและวิธีการทางวิศวกรรมย้อนกลับมากมายที่ไม่ซ้ำกันกับ Hyperdbg
หากคุณสนใจที่จะเข้าใจการออกแบบภายในและสถาปัตยกรรมของไฮเปอร์ไวเซอร์และ Hyperdbg คุณสามารถอ่าน ไฮเปอร์ไวเซอร์ได้จากบทช่วยสอน
ในกรณีที่คุณใช้องค์ประกอบหนึ่งของ Hyperdbg ในงานของคุณโปรดพิจารณาอ้างถึงเอกสารของเรา
1. Hyperdbg: การดีบักที่ใช้ฮาร์ดแวร์ช่วย (CCS'22) [arxiv]
@inproceedings{karvandi2022hyperdbg,
title={HyperDbg: Reinventing Hardware-Assisted Debugging},
author={Karvandi, Mohammad Sina and Gholamrezaei, MohammadHosein and Khalaj Monfared, Saleh and Meghdadizanjani, Soroush and Abbassi, Behrooz and Amini, Ali and Mortazavi, Reza and Gorgin, Saeid and Rahmati, Dara and Schwarz, Michael},
booktitle={Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},
pages={1709--1723},
year={2022}
}
2. เครื่องย้อนกลับ: การสร้างสมมติฐานหน่วยความจำใหม่ [arxiv]
@article{karvandi2024reversing,
title={The Reversing Machine: Reconstructing Memory Assumptions},
author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Arasteh, Sima and Monfared, Saleh Khalaj and Fallah, Mohammad K and Gorgin, Saeid and Lee, Jeong-A and van der Kouwe, Erik},
journal={arXiv preprint arXiv:2405.00298},
year={2024}
}
นอกจากนี้คุณยังสามารถอ่านบทความนี้ได้เนื่องจากอธิบายถึงสถาปัตยกรรมโดยรวมปัญหาทางเทคนิคการตัดสินใจออกแบบและภายในของ Hyperdbg Debugger บทความนี้เกี่ยวกับความพยายามของเราเกี่ยวกับความโปร่งใส VM-Exit และบทความเกี่ยวกับการไล่ล่าแมลงภายในไฮเปอร์ไวเซอร์ บทความเพิ่มเติมโพสต์และทรัพยากรมีอยู่ที่ repo ที่ยอดเยี่ยม และนอกจากนี้ สไลด์ repo ยังมีสไลด์การนำเสนอสำหรับการอ้างอิงเพิ่มเติม
คุณสามารถอ่านเกี่ยวกับการออกแบบภายในของ HyperDBG และคุณสมบัติของมันในเอกสาร นี่คือแผนภาพระดับบนสุดที่แสดงให้เห็นว่า Hyperdbg ทำงานอย่างไร:
คุณสามารถเขียน สคริปต์ ของคุณเพื่อทำให้การดีบักของคุณเป็นไปโดยอัตโนมัติ Hyperdbg มีเอ็นจิ้นสคริปต์ที่มีประสิทธิภาพรวดเร็วรวดเร็วและสมบูรณ์
การมีส่วนร่วมใน Hyperdbg เป็นที่นิยมอย่างมาก เราได้ทำรายการงานที่มีศักยภาพที่คุณอาจสนใจในการมีส่วนร่วม
หากคุณต้องการมีส่วนร่วมใน HyperDBG โปรดอ่านคู่มือการบริจาค
Hyperdbg และ submodules และ repos ทั้งหมดเว้นแต่จะมีการระบุใบอนุญาตเป็นอย่างอื่นจะได้รับใบอนุญาตภายใต้ใบอนุญาต GPLV3
การพึ่งพาได้รับใบอนุญาตด้วยตนเอง