
غلاف syscall في وضع النواة مع إيجاد الأنماط الديناميكي القائم على Zydis لنظامي Windows 10/11
نسخة مُحدّثة من btbd/access مع إيجاد الأنماط الديناميكي القائم على Zydis للتوافق مع Windows 10/11
غلاف لاستدعاءات النظام في وضع النواة (kernel-mode) يتيح تنفيذ عمليات مميَّزة على العمليات دون الحاجة إلى مقابض (handles). يستخدم خطافًا لمؤشر xKdEnumerateDebuggingDevices للتواصل بين وضع النواة ووضع المستخدم.
PROCESS_ALL_ACCESS دون إنشاء مقابض حقيقية.data، دون تصحيحات inlineتعمل هذه النسخة المُحدّثة على تحديث السائق الأصلي من خلال:
[singular-access]يستخدم السائق Zydis لتفكيك دوال النواة واستخراج:
User Mode (DLL)
↓ syscall with SYSCALL_UNIQUE
Kernel Hook (xKdEnumerateDebuggingDevices pointer)
↓ validates & dispatches
Kernel Syscall Handler
↓ performs privileged operation
Return to User Mode
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
[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
يعترض السائق هذه الاستدعاءات ويتعامل معها:
عمليات العمليات (Process Operations)
NtOpenProcessNtSuspendProcess / NtResumeProcessNtQueryInformationProcess / NtSetInformationProcessNtQuerySystemInformationExNtFlushInstructionCacheعمليات الذاكرة
NtAllocateVirtualMemory / NtFreeVirtualMemoryNtReadVirtualMemory / NtWriteVirtualMemoryNtProtectVirtualMemoryNtQueryVirtualMemoryNtLockVirtualMemory / NtUnlockVirtualMemoryNtFlushVirtualMemoryعمليات الخيوط
NtOpenThreadNtSuspendThread / NtResumeThreadNtGetContextThread / NtSetContextThreadNtQueryInformationThread / NtSetInformationThreadالمزامنة
NtWaitForSingleObjectتم اختباره وتأكيد عمله:
إيجاد 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لم يتم العثور على النمط:
أخطاء الارتباط (Linker errors):
ZYDIS_STATIC_BUILD و ZYCORE_STATIC_BUILDlink_driver.bat يستخدم مسارات lib الصحيحة لـ WDKsyscall.hcore.c باستخدام ماكرو HANDLE_SYSCALLxKdEnumerateDebuggingDevicesfind_kd_enum_debug_devices_ptr() في main.cيحتفظ هذا المشروع بنفس ترخيص مستودع btbd/access الأصلي.
هذا البرنامج مخصص للأغراض التعليمية والبحثية فقط. استخدمه بمسؤولية وعلى الأنظمة التي تملكها أو لديك إذن صريح لاختبارها فقط.
| الهدف | الطريقة | الإزاحة/العنوان |
|---|
| KTHREAD.PreviousMode | فك تجميع ExGetPreviousMode | 0x232 (جميع الإصدارات) |
| PsResumeThread | فك تجميع PsRegisterPicoProvider | LEA نسبي إلى RIP عند +0x40 |
| PsSuspendThread | فك تجميع PsRegisterPicoProvider | LEA نسبي إلى RIP عند +0x50 |
| xKdEnumerateDebuggingDevices | فحص نمط مقطع .text | أنماط خاصة بكل إصدار |
| إصدار النظام | البنية | الحالة |
|---|
| Windows 10 1607 | 14393 | ✅ |
| Windows 10 1709 | 16299 | ✅ |
| Windows 10 1809 | 17763 | ✅ |
| Windows 10 2004 | 19041 | ✅ |
| Windows 11 21H2 | 22000 | ✅ |
| Windows 11 22H2 | 22621 | ✅ |
| Windows 11 24H2 | 26100-26200 | ✅ |