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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
access_updated — Windows 10/11용 Zydis 기반 동적 패턴 검색을 지원하는 커널 모드 시스템 콜 래퍼 | Kitploit
도구/GitHubGitHub/gmh5225/access_updated
Privilege EscalationExploitationReverse EngineeringPost-ExploitationBinary Analysis
GitHubgmh5225/access_updated

access_updated

Windows 10/11용 Zydis 기반 동적 패턴 검색을 지원하는 커널 모드 시스템 콜 래퍼

저장소 보기
218개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Singular Access

Windows 10/11 호환성을 위한 Zydis 기반 동적 패턴 검색 기능을 갖춘 btbd/access의 업데이트된 포크

핸들을 요구하지 않고 권한 있는 프로세스 작업을 가능하게 하는 커널 모드 syscall 래퍼입니다. 커널-유저모드 통신을 위해 xKdEnumerateDebuggingDevices 포인터 후킹을 사용합니다.

기능

  • ✅ 하드코딩된 오프셋 없음 - 모든 커널 함수/오프셋은 Zydis 디스어셈블러를 통해 런타임에 발견됩니다.
  • ✅ 버전 독립적 - Windows 10(1607+) 및 Windows 11(최대 24H2)에서 동작합니다.
  • ✅ SEH 미사용 - 구조적 예외 처리 없이 안전한 작업 수행
  • ✅ 핸들 불필요 - 실제 핸들을 생성하지 않고 PROCESS_ALL_ACCESS 작업 수행
  • ✅ 최소 풋프린트 - 인라인 패치 없는 깔끔한 .data 섹션 후킹
  • ✅ 오픈 소스 - 교육 목적으로 전체 소스 코드 제공

새로운 기능

이 포크는 원본 드라이버를 다음과 같이 현대화합니다:

  1. Zydis 통합 - 동적 디스어셈블이 취약한 바이트 패턴을 대체합니다.
  2. 다중 버전 지원 - 단일 바이너리로 Windows 10 1607부터 Windows 11 24H2까지 동작합니다.
  3. 깔끔한 로깅 - [singular-access] 접두사가 포함된 정보성 디버그 출력
  4. 향상된 안정성 - 원시 바이트 대신 명령어 수준 패턴 매칭

작동 방식

동적 패턴 검색

드라이버는 Zydis를 사용하여 커널 함수를 디스어셈블하고 다음을 추출합니다:

후킹 메커니즘

root@kitploit:~
User Mode (DLL)
    ↓ syscall with SYSCALL_UNIQUE
Kernel Hook (xKdEnumerateDebuggingDevices pointer)
    ↓ validates & dispatches
Kernel Syscall Handler
    ↓ performs privileged operation
Return to User Mode

빠른 시작

사전 요구 사항

  • C++ 데스크톱 개발 워크로드가 포함된 Visual Studio 2022
  • Windows 드라이버 키트(WDK) 10
  • 테스트 서명 활성화 또는 커널 디버깅 모드

빌드

root@kitploit:~
cd Driver
msbuild Driver.vcxproj /p:Configuration=Release /p:Platform=x64
link_driver.bat

출력: Driver\x64\Release\Driver.sys

로드

옵션 1: kdmapper(테스트에 권장)

root@kitploit:~
kdmapper.exe Driver.sys

옵션 2: 서비스

root@kitploit:~
sc create singular_access type= kernel binPath= C:\path\to\Driver.sys
sc start singular_access

예상 출력(DebugView)

root@kitploit:~
[singular-access] Initializing driver...
[singular-access] Windows build: 26200
[singular-access] ntoskrnl.exe base: FFFFF80000000000
[singular-access] [*] Searching for PsResumeThread in PsRegisterPicoProvider...
[singular-access] [+] Found PsResumeThread at FFFFF803AAE331C0
[singular-access] [*] Searching for PsSuspendThread in PsRegisterPicoProvider...
[singular-access] [+] Found PsSuspendThread at FFFFF803AADFA1A0
[singular-access] [+] Found PreviousMode offset: 0x232
[singular-access] Searching for xKdEnumerateDebuggingDevices pointer...
[singular-access] xKdEnumerateDebuggingDevices pointer: FFFFF803AB200B68
[singular-access] Installing hook...
[singular-access] Driver initialized successfully

지원되는 Syscall

드라이버는 다음을 가로채서 처리합니다:

프로세스 작업

  • NtOpenProcess
  • NtSuspendProcess / NtResumeProcess
  • NtQueryInformationProcess / NtSetInformationProcess
  • NtQuerySystemInformationEx
  • NtFlushInstructionCache

메모리 작업

  • NtAllocateVirtualMemory / NtFreeVirtualMemory
  • NtReadVirtualMemory / NtWriteVirtualMemory
  • NtProtectVirtualMemory
  • NtQueryVirtualMemory
  • NtLockVirtualMemory / NtUnlockVirtualMemory
  • NtFlushVirtualMemory

스레드 작업

  • NtOpenThread
  • NtSuspendThread / NtResumeThread
  • NtGetContextThread / NtSetContextThread
  • NtQueryInformationThread / NtSetInformationThread

동기화

  • NtWaitForSingleObject

버전 호환성

테스트 및 동작 확인 완료:

기술 세부 정보

Zydis 패턴 예제

PsResumeThread 찾기:

root@kitploit:~
lea rcx, PsResumeThread    ; Load function address
mov [rdx+40h], rcx         ; Store in PICO provider table

xKdEnumerateDebuggingDevices 찾기(Win11 24H2):

root@kitploit:~
mov rax, cs:off_140E00B68  ; Pattern: 48 8B 05 ? ? ? ? 74 ? E8
                           ; Resolve RIP-relative pointer

PreviousMode 오프셋 추출:

root@kitploit:~
mov rax, gs:188h           ; Get KTHREAD
movzx eax, byte ptr [rax+232h]  ; Extract PreviousMode
ret

프로젝트 구조

root@kitploit:~
Driver/
├── main.c              # Entry point, initialization, hook installation
├── core.c              # Syscall handlers
├── util.c              # Pattern scanning, memory utilities
├── zydis_util.c        # Zydis-based pattern finders
├── zydis_util.h        # Zydis function declarations
├── syscall.h           # Syscall definitions
├── stdafx.h            # Precompiled header
└── Zydis/              # Zydis disassembler library

문제 해결

드라이버 로드 실패:

  • 테스트 서명 활성화: bcdedit /set testsigning on
  • 오류 메시지가 있는지 DebugView 확인
  • WDK가 올바르게 설치되었는지 확인

패턴 미발견:

  • DebugView 출력에서 Windows 빌드 번호 확인
  • 특정 빌드에 맞는 새 패턴을 추가해야 할 수 있음
  • 빌드 번호와 디버그 출력과 함께 이슈 열기

링커 오류:

  • 프로젝트에 모든 Zydis 파일이 포함되어 있는지 확인
  • ZYDIS_STATIC_BUILD 및 ZYCORE_STATIC_BUILD가 정의되어 있는지 확인
  • link_driver.bat이 올바른 WDK 라이브러리 경로를 사용하는지 확인

개발

새 Syscall 추가

  1. syscall.h에 syscall 열거형 추가
  2. core.c에 HANDLE_SYSCALL 매크로를 사용하여 핸들러 추가
  3. 드라이버 다시 빌드

새 Windows 버전 추가

  1. IDA/Ghidra에서 새 빌드 분석
  2. xKdEnumerateDebuggingDevices 포인터 패턴 찾기
  3. main.c의 find_kd_enum_debug_devices_ptr()에 패턴 추가
  4. 테스트 및 검증

크레딧

  • 원저자: btbd - 원본 access 드라이버
  • Zydis: zyantific - 빠르고 가벼운 x86/x86-64 디스어셈블러
  • 업데이트: Singular - Zydis 통합 및 다중 버전 지원

라이선스

이 프로젝트는 원본 btbd/access 저장소와 동일한 라이선스를 유지합니다.

면책 조항

이 소프트웨어는 교육 및 연구 목적으로만 제공됩니다. 책임감 있게 사용하고, 소유한 시스템이나 명시적 테스트 허가를 받은 시스템에서만 사용하세요.

도구 다운로드
대상방법오프셋/주소
KTHREAD.PreviousModeExGetPreviousMode 디스어셈블0x232(모든 버전)
PsResumeThreadPsRegisterPicoProvider 디스어셈블+0x40의 RIP-상대 LEA
PsSuspendThreadPsRegisterPicoProvider 디스어셈블+0x50의 RIP-상대 LEA
xKdEnumerateDebuggingDevices.text 섹션 패턴 스캔버전별 패턴
OS 버전빌드상태
Windows 10 160714393✅
Windows 10 170916299✅
Windows 10 180917763✅
Windows 10 200419041✅
Windows 11 21H222000✅
Windows 11 22H222621✅
Windows 11 24H226100-26200✅