Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
access_updated — Обёртка системных вызовов в режиме ядра с динамическим поиском паттернов на основе Zydis для Windows 10/11 | Kitploit
Инструменты/GitHubGitHub/gmh5225/access_updated
Повышение привилегийЭксплуатацияОбратная инженерияПост-эксплуатацияАнализ Бинарных Файлов
GitHubgmh5225/access_updated

access_updated

Обёртка системных вызовов в режиме ядра с динамическим поиском паттернов на основе Zydis для Windows 10/11

Репозиторий
21529 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Singular Access

Обновлённый форк btbd/access с динамическим поиском паттернов на основе Zydis для совместимости с Windows 10/11

Обёртка системных вызовов в режиме ядра, которая обеспечивает привилегированные операции с процессами без необходимости в дескрипторах. Использует перехват указателя 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 для дизассемблирования функций ядра и извлечения:

ЦельМетодСмещение/Адрес
KTHREAD.PreviousModeДизассемблировать ExGetPreviousMode0x232 (все версии)
PsResumeThreadДизассемблировать PsRegisterPicoProviderRIP-относительная LEA по +0x40
PsSuspendThreadДизассемблировать PsRegisterPicoProviderRIP-относительная LEA по +0x50
xKdEnumerateDebuggingDevicesСканирование секции .textПаттерны, зависящие от версии

Механизм перехвата

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

Быстрый старт

Требования

  • Visual Studio 2022 с поддержкой разработки на C++ для настольных приложений
  • Windows Driver Kit (WDK) 10
  • Включённая тестовая подпись (test signing) или режим отладки ядра

Сборка

cd Driver
msbuild Driver.vcxproj /p:Configuration=Release /p:Platform=x64
link_driver.bat

Результат: Driver\x64\Release\Driver.sys

Загрузка

Вариант 1: kdmapper (рекомендуется для тестирования)

kdmapper.exe Driver.sys

Вариант 2: Служба

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

Ожидаемый вывод (DebugView)

[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

Поддерживаемые системные вызовы

Драйвер перехватывает и обрабатывает:

Операции с процессами

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

Операции с памятью

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

Операции с потоками

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

Синхронизация

  • NtWaitForSingleObject

Совместимость версий

Протестировано и подтверждено:

Версия ОССборкаСтатус
Windows 10 160714393✅
Windows 10 170916299✅
Windows 10 180917763✅
Windows 10 200419041✅
Windows 11 21H222000✅
Windows 11 22H222621✅
Windows 11 24H226100-26200✅

Технические подробности

Примеры паттернов Zydis

Поиск PsResumeThread:

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

Поиск xKdEnumerateDebuggingDevices (Win11 24H2):

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

Извлечение смещения PreviousMode:

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

Структура проекта

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 установлен правильно

Паттерн не найден:

  • Проверьте номер сборки Windows в выводе DebugView
  • Возможно, потребуется добавить новый паттерн для вашей конкретной сборки
  • Откройте issue с номером вашей сборки и отладочным выводом

Ошибки компоновщика:

  • Убедитесь, что все файлы Zydis включены в проект
  • Проверьте, что определены ZYDIS_STATIC_BUILD и ZYCORE_STATIC_BUILD
  • Проверьте, что link_driver.bat использует правильные пути к библиотекам WDK

Разработка

Добавление новых системных вызовов

  1. Добавьте перечисление системных вызовов в syscall.h
  2. Добавьте обработчик в core.c, используя макрос HANDLE_SYSCALL
  3. Пересоберите драйвер

Добавление новых версий Windows

  1. Проанализируйте новую сборку в IDA/Ghidra
  2. Найдите паттерн для указателя xKdEnumerateDebuggingDevices
  3. Добавьте паттерн в find_kd_enum_debug_devices_ptr() в main.c
  4. Протестируйте и проверьте

Благодарности

  • Автор оригинала: btbd — исходный драйвер доступа
  • Zydis: zyantific — быстрый и лёгкий дизассемблер x86/x86-64
  • Обновлено: Singular — интеграция Zydis и поддержка множества версий

Лицензия

Этот проект сохраняет ту же лицензию, что и исходный репозиторий btbd/access.

Отказ от ответственности

Это программное обеспечение предназначено только для образовательных и исследовательских целей. Используйте ответственно и только на системах, которыми вы владеете или на которые у вас есть явное разрешение на тестирование.

Скачать инструмент