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

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

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

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

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

Категории

Все категории
Loading categories
lithium-kernel — Драйвер режима ядра Windows с клиентом режима пользователя, предоставляющий чтение/запись физической и виртуальной памяти на основе IOCTL, обход таблиц страниц, сканирование по шаблону и эмуляцию ввода для читерства в играх. | Kitploit
Инструменты/GitHubGitHub/gmh5225/lithium-kernel
Криминалистика памятиОбратная инженерияАнти-БотЭксплуатация Бинарных Файлов
GitHubgmh5225/lithium-kernel

lithium-kernel

Драйвер режима ядра Windows с клиентом режима пользователя, предоставляющий чтение/запись физической и виртуальной памяти на основе IOCTL, обход таблиц страниц, сканирование по шаблону и эмуляцию ввода для читерства в играх.

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

Популярное

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

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

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

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

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

██╗     ██╗████████╗██╗  ██╗██╗██╗   ██╗███╗   ███╗
██║     ██║╚══██╔══╝██║  ██║██║██║   ██║████╗ ████║
██║     ██║   ██║   ███████║██║██║   ██║██╔████╔██║
██║     ██║   ██║   ██╔══██║██║██║   ██║██║╚██╔╝██║
███████╗██║   ██║   ██║  ██║██║╚██████╔╝██║ ╚═╝ ██║
╚══════╝╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝ ╚═════╝ ╚═╝     ╚═╝

Фреймворк драйвера режима ядра Windows с клиентом режима пользователя

Language Platform Arch Mode

[!IMPORTANT]

Получить полный проект

Файлы решения доступны через Discord-сервер.

Заинтересованы в покупке полного исходного кода? Свяжитесь со мной в Telegram или Discord: @tonythimself.


Обзор

Lithium — это драйвер режима ядра Windows (lithium-kernel) в паре с клиентом режима пользователя (lithium-usermode). Он взаимодействует через пользовательский интерфейс IOCTL и предоставляет низкоуровневые примитивы манипуляции памятью, обхода таблиц страниц и управления устройствами ввода.


Возможности

ВозможностьОписание
Физическое чтение/запись памятиПрямое чтение/запись физических адресов через MmCopyMemory
Виртуальное чтение/запись памятиКросс-процессный доступ к виртуальной памяти через MmCopyVirtualMemory
Разрешение DTBИзвлечение базы таблицы каталогов через перечисление базы данных PFN
Обход таблиц страницТрансляция линейных адресов с кэшированием уровней PML4/PDPT/PD/PT
Сканирование по шаблонуСканирование сигнатур в стиле IDA по памяти процесса
Выделение памятиZwAllocateVirtualMemory в контексте целевого процесса
Защита памятиZwProtectVirtualMemory в контексте целевого процесса
Эмуляция мышиВвод мыши на уровне ядра через хук callback-сервиса MouClass
Скрытие потоковПодмена полей ETHREAD (адрес запуска, CID, время создания и т.д.)
Отключение NMI CallbackПодавление NMI callback для обхода отладчика
Очистка пулаУдаление записи из таблицы больших пулов в трекере пулов ядра

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

lithium/
├── lithium-kernel/              # Kernel-mode driver (KMDF)
│   ├── entry.cpp                # DriverEntry entry point
│   ├── core/
│   │   ├── dispatch/            # IOCTL dispatch and request routing
│   │   ├── requests/
│   │   │   ├── directory-table-base/  # DTB resolution & page table walk
│   │   │   ├── image-base/           # Process module base retrieval
│   │   │   ├── mouse/                # Mouse input emulation via MouClass
│   │   │   ├── read-write/           # Physical and virtual memory R/W
│   │   │   └── virtual-memory/       # Allocate, protect, query, pattern scan
│   │   └── utilities/
│   │       ├── kernel/          # Module enumeration, NMI, thread ops
│   │       └── ...              # Pool cleaner, CRT shim
│   └── dependencies/
│       ├── additional/
│       │   ├── crt/             # Minimal CRT implementation
│       │   ├── security/        # skCrypter string encryption, oxorany
│       │   └── structures/      # Shared invoke data structures
│       └── includes.hpp         # Master include header
│
└── lithium-usermode/            # User-mode client
    ├── entry.cpp                # Client entry point
    ├── core/
    │   └── driver/              # IOCTL communication layer
    └── dependencies/
        ├── additional/
        │   └── structs.hpp      # Page table entry unions & helpers
        └── includes.hpp

Интерфейс IOCTL

Связь устанавливается путём перехвата процедуры диспетчеризации IOCTL существующего драйвера (ProcObsrvesx.sys). При загрузке модуль ядра находит целевой драйвер, сканирует его обработчик диспетчеризации IRP и перезаписывает его трамплином на собственный hooked_ioctl lithium. Клиент режима пользователя открывает \\.\ProcObsrvesx, и все IOCTL прозрачно перенаправляются через хук.

КодВходная структураДействие
invoke_basebase_invoke { pid, handle }Получить базу образа процесса
invoke_dtbdtb_invoke { pid, dtb }Разрешить базу таблицы каталогов
invoke_readread_invoke { pid, directory_table, address, buffer, size }Чтение физической памяти
invoke_writewrite_invoke { pid, directory_table, address, buffer, size }Запись физической памяти
invoke_read_virtualread_virtual_invoke { pid, address, buffer, size }Чтение виртуальной памяти
invoke_write_virtualwrite_virtual_invoke { pid, address, buffer, size }Запись виртуальной памяти
invoke_allocateallocate_invoke { pid, type, protection, address, size }Выделить виртуальную память
invoke_protectprotect_invoke { pid, protection, address, size }Изменить защиту памяти
invoke_virtual_queryquery_virtual_invoke { pid, address, mbi }Запросить информацию о виртуальной памяти
invoke_pattern_scanpattern_invoke { pid, signature, address, pattern_address }Сканирование памяти по шаблону
invoke_move_mousemouse_invoke { x, y, flags, button_flags }Эмуляция ввода мыши

Внутреннее устройство

Разрешение DTB

Драйвер перебирает диапазоны физической памяти, возвращаемые MmGetPhysicalMemoryRanges, обходит базу данных PFN для поиска самореферентной записи PML4 и проверяет каждый уровень таблицы страниц для подтверждения правильной базы таблицы каталогов для заданного процесса.

Обход таблиц страниц

Трансляция линейных адресов в физические проходит по четырёхуровневой иерархии таблиц страниц x64 (PML4 → PDPT → PD → PT) с кэшированием на каждом уровне. Поддержка больших страниц (2MB / 1GB) включена по мере возможности.

Эмуляция мыши

Драйвер находит объекты драйверов MouClass и MouHID, извлекает MouseClassServiceCallback из расширения устройства HID и внедряет пакеты MOUSE_INPUT_DATA непосредственно в цепочку callback-ов.

Скрытие потоков

Ключевые поля ETHREAD — время создания, адрес запуска, адрес запуска Win32, стек ядра, CID и статус завершения — сохраняются и заменяются безобидными или нулевыми значениями. При завершении исходные значения восстанавливаются перед завершением потока.


Требования

  • Windows 10/11 x64
  • Visual Studio 2022 или новее с Windows Driver Kit (WDK) 10.0.26100.0
  • Метод загрузки драйвера ядра (test signing, kernel mapper и т.д.)

Сборка

  1. Откройте lithium.sln в Visual Studio
  2. Установите конфигурацию Release / x64
  3. Соберите lithium-kernel → lithium-kernel.sys
  4. Соберите lithium-usermode → lithium-usermode.exe

Или через MSBuild:

msbuild lithium.sln /p:Configuration=Release /p:Platform=x64

Использование

#include <core/driver/driver.hpp>

g_driver->initialize_handle();
DWORD pid = g_driver->get_process_id(L"target.exe");
g_driver->attach(pid);

g_driver->image_base = g_driver->get_image_base(0);
g_driver->dtb = g_driver->resolve_directory_table_base();

auto value = g_driver->read<uintptr_t>(g_driver->image_base + 0xOFFSET);
g_driver->mouse_event(-10, -10, 0, 0);

Зависимости

  • skCrypter — шифрование строк на этапе компиляции
  • oxorany — обфускация констант на этапе компиляции

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

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


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