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

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

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

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

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

Категории

Все категории
Loading categories
masm32-kernel-programming — masm32 kernel programming, drivers, tutorials, examples, and tools (credits Four-F) | Kitploit
Инструменты/GitHubGitHub/therealdreg/masm32-kernel-programming
Reverse EngineeringMalware AnalysisBinary AnalysisLearning & EducationCurated ResourcesLabs & Practice
GitHubtherealdreg/masm32-kernel-programming

masm32-kernel-programming

masm32 kernel programming, drivers, tutorials, examples, and tools (credits Four-F)

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
РепозиторийСайт
130183 лет назадПроверено Kitploit

masm32-kernel-programming

Репозиторий Dreg для его собственных нужд

Программирование ядра masm32, драйверы, руководства, примеры и инструменты (автор: Four-F)

Инструкции

  • скачайте/клонируйте этот репозиторий
  • запустите masm32v11r_install.exe
  • нажмите на установочный образ (земля)
  • установите masm32 в C:\
  • рекомендую добавить в переменную окружения PATH следующие записи:
    • C:\masm32\bin
    • C:\masm32
  • скопируйте содержимое KmdKit18\include\ в C:\masm32\include\
  • скопируйте содержимое KmdKit18\macros\ в C:\masm32\macros\
  • скопируйте содержимое KmdKit18\lib\ в C:\masm32\lib\

Простой пример

  • скопируйте beeper.asm в C:\
  • скопируйте beeper.bat в C:\
  • запустите beeper.bat

В этот момент в C:\ создаётся .sys

Как загрузить/выгрузить драйвер

w2k_load.exe - лучший способ

загрузка драйвера:

  • w2k_load.exe C:\beeper.sys

w2k_load.exe или osrloader.exe выдают ошибку при загрузке beeper.sys — просто проигнорируйте её.

Эта ошибка генерируется самим кодом драйвера, когда он завершает своё собственное выполнение (с помощью этого трюка вам не нужно его выгружать)

root@kitploit:~
mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
ret

Итак, если beep.sys корректно загружен в ядро, вы должны услышать звуковой сигнал из динамиков (код драйвера генерирует сигнал)

Когда вам нужно выгрузить драйвер, используйте:

  • w2k_load.exe PATH_SYS_FILE /unload

Я модифицировал w2k_load.exe от Sven B. Schreiber, чтобы он работал с Windows 2000 по Windows 10 (манифест...)

osrloader

распакуйте osrloaderv30.zip и используйте эту программу с графическим интерфейсом:

  • Выберите файл .sys (путь к драйверу)
  • Зарегистрируйте службу
  • Запустите службу

Как просматривать отладочные сообщения без windbg

для более старых Windows просто используйте DbgView.exe, приложенный в этом репозитории. Кстати, я модифицировал его (манифест...)

Для современных Windows используйте последний dbgview.exe с сайта sysinternals и обратитесь к этим материалам для устранения неполадок:

  • https://stackoverflow.com/questions/12494300/no-output-from-debugview
  • http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx
  • https://learn.microsoft.com/en-us/sysinternals/downloads/debugview

Дальнейшие шаги

Прочитайте .pdf-файлы в этом репозитории и посмотрите примеры в каталоге KmdKit18/examples

ПРЕДУПРЕЖДЕНИЕ: ВЕСЬ исходный код ASM находится внутри .bat-файлов (пакетный код и код asm смешаны в одном файле)

Пример: advanced\FindShadowTable\FindShadowTable.bat

root@kitploit:~
;@echo off
;goto make

ASM DRIVER CODE GOES HERE

:make
set drv=FindShadowTable
\masm32\bin\ml /nologo /c /coff %drv%.bat
\masm32\bin\link /nologo /driver /base:0x10000 /align:32 /out:%drv%.sys /subsystem:native %drv%.obj
del %drv%.obj
echo.
pause

Этот файл содержит пакетный код, который создаёт .sys, а также содержит сам исходный код драйвера. Так что да, это очень хитро: сборочный скрипт и исходный код находятся вместе.

advanced/FindShadowTable

advanced/FindShadowTable

Это пример того, как найти ServiceDescriptorTableShadow.

Он просто сканирует потоки с ID 80h-400h, пытаясь найти поток, у которого KTHREAD.ServiceTable не равен KeServiceDescriptorTable. Если такой поток найден, его KTHREAD.ServiceTable содержит адрес ServiceDescriptorTableShadow.

Наблюдайте за отладочным выводом драйвера с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

advanced/KbdSpy

advanced/KbdSpy

Это пример простого легаси (не PnP) фильтр-драйвера PS/2-клавиатуры. ПРЕДУПРЕЖДЕНИЕ: Вам не удастся прикрепить его к стеку USB-клавиатуры.

Проверено на: Windows 2000, XP и Server 2003.

advanced/MouSpy

advanced/MouSpy

Four-F, [email protected]. Эти файлы макросов из моего пакета cocomac.

Это пример простого легаси (не PnP) фильтр-драйвера PS/2-мыши. ПРЕДУПРЕЖДЕНИЕ: Вам не удастся прикрепить его к стеку USB-мыши.

Проверено на: Windows 2000, XP и Server 2003.

advanced/SecureDevices

advanced/SecureDevices

Это пример того, как применить определённые параметры безопасности к именованному объекту устройства, вызвав IoCreateDeviceSecure вместо IoCreateDevice.

Поскольку процедура IoCreateDeviceSecure не является частью операционной системы, мы связываем wdmsec.lib, который содержит все необходимые процедуры.

Библиотека wdmsec.lib, которую вы найдёте здесь, — не та, что поставляется с DDK. Мне пришлось пересобрать её, чтобы уменьшить размер, удалив ненужные элементы.

basic/FileWorks

basic/FileWorks

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

Используйте KmdManager для регистрации/отмены регистрации и запуска. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/HiddenDriver

basic/HiddenDriver

Это пример того, как упаковать драйвер в ресурсы.

Проверено на: Windows 2000, XP и Server 2003.

basic/IsSafeBootMode

basic/IsSafeBootMode

Способ узнать, работает ли система в безопасном режиме или нет.

Используйте KmdManager для регистрации/отмены регистрации и запуска. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/MemoryWorks/LookasideList

basic/MemoryWorks/LookasideList

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

Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/MemoryWorks/seh

basic/MemoryWorks/seh

Это пример того, как обрабатывать исключения с помощью SEH. Но помните. ВЫ НЕ МОЖЕТЕ ОБРАБАТЫВАТЬ ВСЕ ИСКЛЮЧЕНИЯ С ПОМОЩЬЮ SEH В РЕЖИМЕ ЯДРА!

Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/MemoryWorks/SharedSection

basic/MemoryWorks/SharedSection

Это пример того, как использовать именованный объект-раздел для разделения памяти между процессом пользовательского режима и драйвером режима ядра.

Проверено на: Windows 2000, XP и Server 2003.

basic/MemoryWorks/SharingMemory

basic/MemoryWorks/SharingMemory

Это пример одного из возможных способов разделения буфера памяти между пользовательским режимом и режимом ядра.

Проверено на: Windows 2000, XP и Server 2003.

basic/MemoryWorks/SystemModules

basic/MemoryWorks/SystemModules

Это пример того, как выделять память в режиме ядра. Чтобы не выделять её впустую, мы заполняем её некоторой системной информацией.

Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/RegistryWorks

basic/RegistryWorks

Это пример того, как создавать, устанавливать, читать и удалять раздел реестра. Используйте KmdManager для регистрации/отмены регистрации и запуска. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/Sections

basic/Sections

Это пример того, как разместить код в различных PE-секциях.

basic/Synchronization/MutualExclusion

basic/Synchronization/MutualExclusion

Это пример того, как реализовать взаимно исключающий доступ к ресурсу.

Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

basic/Synchronization/SharedEvent - ProcessMon

[basic/Synchronization/SharedEvent - ProcessMon](KmdKit18/examples/basic/Synchronization/SharedEvent - ProcessMon)

Это пример того, как уведомить пользовательский режим о том, что произошло какое-либо событие.

Проверено на: Windows 2000, XP и Server 2003.

basic/Synchronization/TimerWorks

basic/Synchronization/TimerWorks

Это пример того, как создавать, устанавливать, ожидать и отменять таймер. Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003.

basic/WorkItem

basic/WorkItem

Пример WorkItem

nodriver/DiskGeometry

nodriver/DiskGeometry

В этом примере мы работаем с существующим дисковым устройством.

Проверено на: Windows 2000, XP и Server 2003

nodriver/DriveLayout

nodriver/DriveLayout

Предоставляет информацию о характеристиках каждого раздела диска.

Проверено на: Windows 2000, XP и Server 2003

nodriver/FloppyGeometry

nodriver/FloppyGeometry

В этом примере мы работаем с существующим дисковым устройством.

Проверено на: Windows 2000, XP и Server 2003

nodriver/KbdGarland

nodriver/KbdGarland

В этом примере мы работаем с существующим устройством клавиатуры.

Проверено на: Windows 2000, XP и Server 2003

nodriver/KbdTypematic

nodriver/KbdTypematic

В этом примере мы работаем с существующим устройством клавиатуры. Этот пример предоставляет часть функциональности стандартного апплета Панель управления -> Клавиатура.

Проверено на: Windows 2000, XP и Server 2003

nodriver/MbrDump

nodriver/MbrDump

Чтение MBR из пользовательского режима — это самое простое, что можно сделать, если вы знаете, с какого устройства читать.

Проверено на: Windows 2000, XP и Server 2003

nodriver/SerialBaudRate

nodriver/SerialBaudRate

В этом примере мы работаем с существующим последовательным устройством.

Проверено на: Windows 2000, XP и Server 2003

setup/EnumDisk

setup/EnumDisk

Это пример того, как использовать некоторые из функций setup-устройств. Перечисляет все доступные дисковые устройства и получает свойства устройства. Запустите его из командной строки.

Проверено на: Windows 2000, XP и Server 2003

simple/Beeper

simple/Beeper

Как подать звуковой сигнал через системный динамик.

Проверено на: Windows NT4.0+sp6, 2000, XP и Server 2003

simple/DateTime

simple/DateTime

Предоставляет прямой доступ к портам ввода-вывода для процесса пользовательского режима. Основано на статье и исходном коде на C Дейла Робертса (Dale Roberts).

Проверено на: Windows 2000, XP и Server 2003

simple/GetKernelBase

simple/GetKernelBase

Это пример того, как найти базу ntoskrnl.exe.

Используйте KmdManager для регистрации/отмены регистрации и запуска/остановки. Наблюдайте за его отладочным выводом с помощью DbgView (www.sysinternals.com) или используйте SoftICE.

Проверено на: Windows 2000, XP и Server 2003

simple/NtBuild

simple/NtBuild

Демонстрирует взаимодействие с драйвером через ReadFile, не используя ни один из методов. А также как использовать SEH в ring0.

Проверено на: Windows 2000, XP и Server 2003

simple/Simplest

simple/Simplest

Простейший из возможных драйверов режима ядра, который абсолютно ничего не делает.

Проверено на: Windows 2000, XP и Server 2003

simple/Skeleton

simple/Skeleton

Скелетный код драйвера устройства режима ядра Windows NT.

Проверено на: Windows 2000, XP и Server 2003

simple/VirtToPhys

simple/VirtToPhys

Демонстрирует взаимодействие с драйвером через DeviceIoControl, используя буферизованный метод. А также как преобразовывать виртуальные адреса.

Проверено на: Windows 2000, XP и Server 2003

simple/WhichIrqlAndContext

simple/WhichIrqlAndContext

Этот пример позволяет узнать IRQL и контекст процесса/потока, в которых выполняются основные процедуры драйвера. Используйте DebugView (www.sysinternals.com) для просмотра его вывода.

Проверено на: Windows 2000, XP и Server 2003

Связанные ссылки

  • https://masm32.com/board/index.php?topic=4452.0
  • http://www.masm32.com/website/kmdtute/index.html
  • https://www.asmcommunity.net/forums/topic/10872/2.html
  • http://four-f.narod.ru/
  • https://empyreal96.github.io/nt-info-depot/WinDDK.html

Дополнительная информация для изучения

  • https://github.com/therealdreg/x86osdev

  • Документация Windows Driver Kit (WDK) версии 7.1.0: https://www.microsoft.com/en-us/download/details.aspx?id=11800

  • Документация WDK: https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

  • Руководство разработчика по архитектурам Intel 64 и IA-32, объединённые тома: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D и 4

  • Утечка исходного кода Windows 2003, WRK, CRK ...

  • Книга Undocumented Windows NT — Prasad Dabak, Sandeep Phadke и Milind Borate

  • Книга Windows Kernel Programming — Pavel Yosifovich

  • Книги Windows Internals — Mark Russinovich, David A. Solomon и другие

  • (книга) The Rootkit Arsenal, 2-е изд., Bill Blunden

  • (книга) What Makes It Page?: The Windows 7 (x64) Virtual Memory Manager — Enrico Martignetti

  • (книга) Subverting the Windows Kernel

  • (книга) Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats

  • osdev (сообщество для людей, интересующихся разработкой операционных систем)

  • случайные github/gist, OSR, phrack, uninformed, openrce, kernelmode, rootkit.com, arteam...

Люди, за которыми стоит следить

  • https://github.com/hfiref0x
  • https://github.com/rwfpl
  • https://github.com/deroko
  • https://github.com/Fyyre
  • https://github.com/Cr4sh
  • https://twitter.com/zwclose
  • https://twitter.com/yarden_shafir
  • https://twitter.com/markrussinovich
  • https://twitter.com/aionescu
  • https://twitter.com/zodiacon
  • https://github.com/TheEnergyStory
  • https://twitter.com/msuiche
  • https://twitter.com/therealdreg
  • https://twitter.com/0vercl0k
  • https://twitter.com/Ivanlef0u
  • https://twitter.com/mrexodia
  • https://twitter.com/reversemode
  • https://twitter.com/standa_t
  • https://twitter.com/richinseattle
  • https://twitter.com/gynvael
  • https://twitter.com/j00ru
  • https://twitter.com/Xylit0l
Скачать инструмент