
HyperDBG Debugger는 최신 하드웨어 기술 사용에 중점을 둔 오픈 소스, 커뮤니티 중심, 하이퍼 바이저 지원, 사용자 모드 및 커널 모드 Windows 디버거입니다. 분석, 퍼징 및 역전을 위해 설계된 디버거입니다.
Twitter 또는 Mastodon 에서 HyperDBG를 따라 새로운 릴리스에 대한 알림을 받거나 HyperDBG 그룹에 가입하여 개발자 및 오픈 소스 반전 애호가에게 HyperDBG 설정 및 사용에 도움을 요청할 수 있습니다.
HyperDBG 는 Debuggers의 세계에 새로운 기능을 제공하기 위해 최신 하드웨어 기술을 사용하는 데 중점을두고 있습니다. Intel VT-X 및 EPT를 사용하여 이미 실행중인 시스템을 가상화하여 Windows 상단에서 작동합니다. 이 디버거는 API 및 소프트웨어 디버깅 메커니즘을 사용하지 않는 것을 목표로하지만 대신 두 번째 레이어 페이지 테이블 (일명 확장 페이지 테이블 또는 EPT)을 사용하여 커널과 사용자 실행을 모두 모니터링합니다.
TLB 스플릿을 사용하고 코드 커버리지 측정 및 함수에 의한 메모리로 모든 이동 (S)을 모니터링하는 것과 같은 기능을 사용하면 HyperDBG가 고유 한 디버거가됩니다.
새로운 특징이 있지만 HyperDBG는 가능한 한 은밀 해지려고합니다. 디버깅 API를 사용하여 Windows 또는 Application을 디버깅하기 위해 API를 사용하지 않으므로 클래식 방지 방지 방법은 감지되지 않습니다. 또한, 그것은 델타 방법 (예 : rdtsc/rdtscp)의 활용에 하이퍼 바이저의 존재를 감지하여 응용 프로그램, 패커, 보호기, 맬웨어, 안티 체트 엔진 등을 훨씬 더 어렵게 만들어 디버거를 발견합니다.
최신 컴파일 된 이진 파일을 릴리스 에서 다운로드 할 수 있습니다. 그렇지 않으면 HyperDBG를 만들려면 --recursive 플래그로 HyperDBG를 복제해야합니다.
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
HyperDBG 로 시작하는 방법에 대한 자세한 설명을 보려면 빌드 및 설치 및 빠른 시작을 방문하십시오. 자세한 내용은 FAQ를 보거나 이전에 GDB, LLDB 또는 WINDBG와 같은 다른 기본 디버거를 사용한 경우 명령 맵을 볼 수 있습니다.
OpenSecurityTraining2의 "HyperDBG (DBG3301) "튜토리얼 시리즈는 OST2 웹 사이트 ( 선호 )에서 제공되는 튜토리얼 시리즈 및 YouTube는 HyperDBG를 시작하고 배우는 권장 방법입니다. HyperDBG를 사용하여 필수 개념, 원칙 및 디버깅 기능을 다루는 초기 단계와 하이퍼드 BG에 고유 한 수많은 역 엔지니어링 방법을 포함합니다.
하이퍼 바이저 및 하이퍼드BG의 내부 설계 및 아키텍처를 이해하는 데 관심이 있다면 스크래치 튜토리얼에서 하이퍼 바이저를 읽을 수 있습니다.
작업에서 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 디버거의 전반적인 아키텍처, 기술적 어려움, 디자인 결정 및 내부, VM-Exit Transparency에 대한 우리의 노력 및 하이퍼 바이저 내 버그를 쫓는 것에 대한이 기사를 설명 하므로이 기사를 읽을 수 있습니다. Awesome Repo에서 더 많은 기사, 게시물 및 리소스가 제공되며 Slides Repo는 추가 참조를 위해 프레젠테이션 슬라이드를 제공합니다.
HyperDBG의 내부 디자인과 문서의 기능에 대해 읽을 수 있습니다. 다음은 HyperDBG의 작동 방식을 보여주는 최상위 다이어그램입니다.
스크립트를 작성하여 디버깅 여행을 자동화 할 수 있습니다. HyperDBG 에는 강력하고 빠르며 완전히 커널 측면 구현 스크립트 엔진이 있습니다.
HyperDBG에 기여하는 것은 매우 감사합니다. 우리는 당신이 기여에 관심이있는 잠재적 인 작업 목록을 만들었습니다.
HyperDBG에 기여하려면 기여 가이드를 읽으십시오.
HyperDBG 및 라이센스가 달리 지정되지 않는 한 모든 하위 모듈 및 저장소는 GPLV3 라이센스에 따라 라이센스가 부여됩니다.
의존성은 자체적으로 라이센스가 부여됩니다.