Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
access_updated — Wrapper de syscalls em modo kernel com busca dinâmica de padrões baseada em Zydis para Windows 10/11 | Kitploit
Ferramentas/GitHubGitHub/gmh5225/access_updated
Escalada de PrivilégiosExploraçãoEngenharia ReversaPós-ExploraçãoAnálise de Binários
GitHubgmh5225/access_updated

access_updated

Wrapper de syscalls em modo kernel com busca dinâmica de padrões baseada em Zydis para Windows 10/11

Ver Repositório
2151há 9 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Singular Access

Fork atualizado de btbd/access com busca dinâmica de padrões baseada em Zydis para compatibilidade com Windows 10/11

Um wrapper de syscalls em modo kernel que permite operações privilegiadas em processos sem exigir handles. Utiliza hooking de ponteiro de xKdEnumerateDebuggingDevices para comunicação kernel-usermode.

Recursos

  • ✅ Sem offsets hardcoded - Todas as funções/offsets do kernel são descobertos em tempo de execução via disassembler Zydis
  • ✅ Independente de versão - Funciona no Windows 10 (1607+) e Windows 11 (até 24H2)
  • ✅ Sem SEH - Operações seguras sem tratamento estruturado de exceções
  • ✅ Sem handles - Execute operações PROCESS_ALL_ACCESS sem criar handles reais
  • ✅ Pegada mínima - Hook limpo na seção .data, sem patches inline
  • ✅ Código aberto - Código-fonte completo disponível para fins educacionais

Novidades

Este fork moderniza o driver original com:

  1. Integração Zydis - A desmontagem dinâmica substitui padrões de bytes frágeis
  2. Suporte multi-versão - Um único binário funciona do Windows 10 1607 ao Windows 11 24H2
  3. Log limpo - Saída de depuração informativa com prefixo [singular-access]
  4. Melhor confiabilidade - Correspondência de padrões em nível de instrução em vez de bytes brutos

Como Funciona

Descoberta Dinâmica de Padrões

O driver usa Zydis para desmontar funções do kernel e extrair:

AlvoMétodoOffset/Endereço
KTHREAD.PreviousModeDesmontar ExGetPreviousMode0x232 (todas as versões)
PsResumeThreadDesmontar PsRegisterPicoProviderLEA relativo a RIP em +0x40
PsSuspendThreadDesmontar PsRegisterPicoProviderLEA relativo a RIP em +0x50
xKdEnumerateDebuggingDevicesVarredura de padrão na seção .textPadrões específicos da versão

Mecanismo de Hook

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

Início Rápido

Pré-requisitos

  • Visual Studio 2022 com desenvolvimento para desktop em C++
  • Windows Driver Kit (WDK) 10
  • Assinatura de teste habilitada ou modo de depuração de kernel

Compilação

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

Saída: Driver\x64\Release\Driver.sys

Carregamento

Opção 1: kdmapper (recomendado para testes)

kdmapper.exe Driver.sys

Opção 2: Serviço

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

Saída Esperada (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

Syscalls Suportados

O driver intercepta e trata:

Operações de Processo

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

Operações de Memória

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

Operações de Thread

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

Sincronização

  • NtWaitForSingleObject

Compatibilidade de Versões

Testado e confirmado funcionando:

Versão do SOBuildStatus
Windows 10 160714393✅
Windows 10 170916299✅
Windows 10 180917763✅
Windows 10 200419041✅
Windows 11 21H222000✅
Windows 11 22H222621✅
Windows 11 24H226100-26200✅

Detalhes Técnicos

Exemplos de Padrões Zydis

Encontrando PsResumeThread:

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

Encontrando xKdEnumerateDebuggingDevices (Win11 24H2):

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

Extraindo o offset de PreviousMode:

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

Estrutura do Projeto

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

Solução de Problemas

O driver não carrega:

  • Habilite a assinatura de teste: bcdedit /set testsigning on
  • Verifique as mensagens de erro no DebugView
  • Confirme que o WDK está instalado corretamente

Padrão não encontrado:

  • Verifique o número do build do Windows na saída do DebugView
  • Talvez seja necessário adicionar um novo padrão para seu build específico
  • Abra uma issue com o número do build e a saída de depuração

Erros de linker:

  • Certifique-se de que todos os arquivos Zydis estão incluídos no projeto
  • Verifique se ZYDIS_STATIC_BUILD e ZYCORE_STATIC_BUILD estão definidos
  • Confirme que link_driver.bat está usando os caminhos corretos das libs do WDK

Desenvolvimento

Adicionando Novos Syscalls

  1. Adicione o enum de syscall em syscall.h
  2. Adicione o handler em core.c usando a macro HANDLE_SYSCALL
  3. Recompile o driver

Adicionando Novas Versões do Windows

  1. Analise o novo build no IDA/Ghidra
  2. Encontre o padrão para o ponteiro xKdEnumerateDebuggingDevices
  3. Adicione o padrão em find_kd_enum_debug_devices_ptr() em main.c
  4. Teste e verifique

Créditos

  • Autor original: btbd - Driver de acesso original
  • Zydis: zyantific - Desmontador x86/x86-64 rápido e leve
  • Atualizado por: Singular - Integração Zydis e suporte multi-versão

Licença

Este projeto mantém a mesma licença do repositório original btbd/access.

Aviso Legal

Este software é apenas para fins educacionais e de pesquisa. Use com responsabilidade e somente em sistemas que você possua ou tenha permissão explícita para testar.

Baixar ferramenta