Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
matrix-rs — Rusty Hypervisor - Rust로 작성된 Windows 커널 Blue Pill Type-2 하이퍼바이저 (코드명: Matrix) | Kitploit
도구/GitHubGitHub/memn0ps/matrix-rs
Memory ForensicsDynamic Code Analysis (DAST)IDS/IPS EvasionReverse EngineeringSecurity VirtualizationLearning & EducationArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - Rust로 작성된 Windows 커널 Blue Pill Type-2 하이퍼바이저 (코드명: Matrix)

저장소 보기
356423개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Rust로 작성된 Windows 커널 Blue Pill Type-2 하이퍼바이저 (코드네임: Matrix)

License Issues Forks Stars

블로그: https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

Intel VT-x용 후크를 갖춘, 가상화의 핵심 개념을 연구하는 데 초점을 맞춘 가볍고 메모리 안전하며 매우 빠른 Rust 기반 Type-2 연구용 하이퍼바이저입니다.

참고: Illusion 하이퍼바이저(Rust로 작성된 Windows UEFI Blue Pill Type-1 하이퍼바이저)는 더 안정적이고 더 많은 기능을 지원하며 전반적으로 더 나은 설계를 갖추고 있습니다. Matrix 하이퍼바이저(Rust로 작성된 Windows 커널 Blue Pill Type-2 하이퍼바이저)는 더 오래된 실험적 버전이며 프로덕션 사용을 위한 것이 아닙니다. 두 프로젝트 모두 Rust로 하이퍼바이저 개발을 시작하려는 사람들을 위한 템플릿 역할을 합니다.

EPT 후크 그림 0: EPT(Extended Page Tables) 후크 (Matrix)

기능

  • ✅ EPT(Extended Page Tables): MTRR(Memory Type Range Registers) 지원.
  • ✅ VM Exit 처리: ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, EptViolation, , , , 처리.
  • ✅ 숨겨진 커널 인라인 후크: PatchGuard와 호환되는 브레이크포인트(int3) 후크.
  • ✅ 숨겨진 시스템 호출(Syscall) 후크: SSDT(System Service Descriptor Table) 함수 항목에 대한 PatchGuard 호환 후크.
  • ✅ 격리 및 보안: 하이퍼바이저의 보안과 격리를 개선하기 위한 GDT(Global Descriptor Table), IDT(Interrupt Descriptor Table) 및 페이지 테이블의 맞춤 구현. 인식 제고에 기여한 @namazso 님께 감사드립니다.

지원 하드웨어

  • ✅ VT-x 및 EPT(Extended Page Tables)를 지원하는 Intel 프로세서.
  • ❌ AMD-V(SVM) 및 NPT(Nested Page Tables)를 지원하는 AMD 프로세서.

지원 플랫폼

  • ✅ Windows 10 - Windows 11, x64 전용.

설치

  1. 여기에서 Rust를 설치합니다.
  2. Rust Nightly로 전환합니다: rustup toolchain install nightly 및 rustup default nightly.
  3. LLVM 설치: winget install LLVM.LLVM.
  4. 도구 설치: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. WDK/SDK/EWDK 설치: 여기의 단계를 따릅니다.
  6. WDK 설치 중 자동으로 설정되지 않은 경우 WDKContentRoot 환경 변수를 WDK 설치 경로를 가리키도록 설정합니다:
root@kitploit:~
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

프로젝트 빌드

  • 개발: cargo make --profile development.
  • 프로덕션: cargo make --profile release.

디버깅

디버그 모드 활성화

  • 테스트 모드: bcdedit.exe /set testsigning on으로 테스트 서명을 활성화합니다.
  • Windows 디버깅: 이 Microsoft 가이드의 단계를 따릅니다.
root@kitploit:~
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Windbg를 사용한 네트워크 디버깅

설정: bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n.

디버그 출력 필터

  1. regedit.exe를 엽니다.
  2. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager로 이동합니다.
  3. DEFAULT DWORD = 8인 Debug Print Filter를 생성합니다.

VMware 직렬 포트 디버깅

  1. VMware에서 직렬 포트 추가: 'Use output file'.
  2. Windows VM에서 구성: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

서비스 관리

Service Controller(sc.exe)를 사용하여 하이퍼바이저 서비스를 생성 및 관리합니다:

root@kitploit:~
sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

사용법

  1. VMware Workstation용 설정

    프로젝트 빌드: 이전 섹션에서 제공된 빌드 지침에 따라 프로젝트를 컴파일합니다.

  2. VMware Workstation 구성

    디버깅을 위해 VMware 직렬 포트를 구성합니다.

VMware 직렬 포트 설정 그림 1: VMware 직렬 포트 설정

"Virtualize Intel VT-x/EPT or AMD-V/RVI" 및 "Virtualize IOMMU (IO memory management unit)"이 활성화되어 있는지 확인합니다.

VMware 프로세서 설정 그림 2: VMware 프로세서 설정

  1. 드라이버 복사

    matrix.sys 드라이버를 C:\Windows\System32\drivers 디렉터리에 복사합니다.

  2. VMware 직렬 포트 디버깅

    직렬 포트 디버깅 섹션의 PowerShell 스크립트를 실행하여 직렬 포트를 엽니다.

  3. 하이퍼바이저 로드

    서비스 관리 섹션에 표시된 load.ps1 PowerShell 스크립트를 사용하여 하이퍼바이저 서비스를 생성하고 시작합니다.

하이퍼바이저 로드 그림 3: 하이퍼바이저 로드

PoC

하이퍼바이저 PoC 설정 그림 4: 로그 및 Windbg PoC 설정

하이퍼바이저 PoC 실행 그림 5: 로그 및 Windbg PoC 실행

감사의 말, 참고 자료 및 동기

이 프로젝트를 만드는 데 영향을 준 훌륭한 사람들과 자료에 큰 감사를 드립니다. 아래에 나열된 모든 분들께 특별히 감사드립니다. 제 작업에 이 모든 자료를 사용하지는 않았지만, 하이퍼바이저 개발에 뛰어들고자 하는 모든 사람(저 포함)에게 매우 유용한 정보의 보고입니다.

  • Daax (@daaximus): 하이퍼바이저 개발에 대한 뛰어난 무료 시리즈를 제공해 주셨습니다. 이는 가장 좋은 자료 중 하나이며, 철저한 연구와 명확한 설명으로 제 작업에 큰 영향을 주었습니다. 하이퍼바이저 개발을 시작하는 데 있어 그분의 지원과 질문에 대한 답변은 매우 귀중했습니다:

    • 7 Days to Virtualization.
    • MMU Virtualization via Intel EPT.
  • Satoshi Tanda (@tandasat): Satoshi Tanda의 지도, 프로젝트 및 체계적인 교육 프로그램은 매우 도움이 되었습니다. GitHub에서의 상세한 설명과 기여는 제 이해를 크게 향상시켰으며, 제 여정 내내 훌륭한 멘토가 되어 주었습니다:

    • Hypervisor Development for Security Researchers.
    • Hypervisor 101 in Rust.
    • 추가 프로젝트: Hello-VT-rp, DdiMon, HyperPlatform, MiniVisorPkg.
  • Jess (@jessiep_): 이 프로젝트의 여러 영역에서 귀중한 지원과 협력을 아끼지 않았고, 필수적인 통찰력과 전문 지식을 제공했으며 질문에 신속히 응답해 주셨습니다.

  • Drew (@drew): 하이퍼바이저 개발의 다양한 측면에서 도움, 지도 및 질문에 대한 빠른 응답을 제공해 주셨습니다.

  • Sina Karvandi (@Intel80x86): 상세한 무료 Hypervisor From Scratch 시리즈를 제공해 주셨습니다:

    • 튜토리얼 시리즈.
    • GitHub 저장소.
  • Matthias (@not-matthias): amd_hypervisor 프로젝트에 대한 영향력 있는 작업으로 이 연구에 큰 영감을 주고 영향을 미쳤습니다.

커뮤니티 및 기술 자료

  • Secret Club: 이 프로젝트에 영감을 준 안티치트 시스템 및 하이퍼바이저 탐지에 대한 통찰력:

    • System emulation detection - @Daax, @iPower, @ajkhoury, @drew 작성.
    • BattlEye hypervisor detection - @vmcall, @Daax 작성.
  • 기타 필수 자료:

    • Intel 소프트웨어 개발자 매뉴얼.
    • Maurice Heumann(@momo5502)의 Detecting Hypervisor-Assisted Hooking.
    • Guided Hacking의 YouTube x64 Virtual Address Translation 동영상.
    • UnKnoWnCheaTs 포럼 게시물 - @namazso 작성.
    • RVM1.5, Barbervisor, rustyvisor, orange_slice, mythril, uhyve, maystorm.
    • Back Engineering의 AMD-V 하이퍼바이저 개발, bluepill - @_xeroxz.

도움을 주신 분들과 협력자

특별히 감사드립니다:

  • Daax.
  • Satoshi Tanda (@tandasat).
  • Drew (@drew).
  • iPower (@iPower).
  • Namazso (@namazso).
  • Jess (@jessiep_).
  • Matthias @not-matthias.
  • @felix-rs / @joshuа.
  • Ryan McCrystal / @rmccrystal.
  • Jim Colerick (@vmprotect).

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 MIT 라이선스 세부정보를 참조하세요.

도구 다운로드
EptMisconfiguration
Invept
Invvpid
Xsetbv

Nick Peterson (@everdox) 및 Aidan Khoury (@ajkhoury): 하이퍼바이저 인트로스펙션(introspection)과 시스템 콜 후킹에 대한 통찰력 있는 탐구를 제공해 주셨습니다:

  • Patchguard: Hypervisor Based Introspection [P1].
  • Patchguard: Hypervisor Based Introspection [P2].
  • Syscall Hooking Via Extended Feature Enable Register (EFER).
  • wbenny의 hvpp.
  • Air14의 HyperHide.
  • M3ll0wN1ght의 AetherVisor 내부 동작 방식.
  • x86(amd64) 특정 기능 및 레지스터를 사용하기 위한 Rust 라이브러리 (Rust용 x86 크레이트).
  • UnknownCheats의 DarthTon의 HyperBone (전설적인 Alex Ionescu 버전 기반).
  • Joanna Rutkowska: Blue Pill 하이퍼바이저 개념을 개척한 최초의 개념 증명 중 하나.