Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
masm32-kernel-programming — masm32 kernel programming, drivers, tutorials, examples, and tools (credits Four-F) | Kitploit
Outils/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)

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôtSite web
13018il y a 3 ansVérifié par Kitploit

masm32-kernel-programming

Dépôt de Dreg pour ses propres besoins

Programmation noyau masm32, pilotes, tutoriels, exemples et outils (crédits Four-F)

Instructions

  • téléchargez/clonez ce dépôt
  • exécutez masm32v11r_install.exe
  • cliquez sur l'image d'installation (terre)
  • installez masm32 dans C:\
  • Je recommande d'ajouter les entrées suivantes à la variable d'environnement PATH :
    • C:\masm32\bin
    • C:\masm32
  • copiez le contenu de KmdKit18\include\ vers C:\masm32\include\
  • copiez le contenu de KmdKit18\macros\ vers C:\masm32\macros\
  • copiez le contenu de KmdKit18\lib\ vers C:\masm32\lib\

Exemple de base

  • copiez beeper.asm vers C:\
  • copiez beeper.bat vers C:\
  • exécutez beeper.bat

À ce stade, un .sys est créé dans C:\

Comment charger/décharger un pilote

w2k_load.exe - meilleure méthode

charger le pilote :

  • w2k_load.exe C:\beeper.sys

w2k_load.exe ou osrloader.exe affiche une erreur lors du chargement de beeper.sys, ignorez-la simplement.

Cette erreur est générée par le code du pilote lui-même lorsqu'il termine sa propre exécution (avec cette astuce, vous n'avez pas besoin de le décharger).

root@kitploit:~
mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
ret

Ainsi, si beep.sys est correctement chargé dans le noyau, vous devriez entendre un bip dans vos haut-parleurs (le code du pilote génère un bip).

Quand vous devez décharger un pilote, utilisez :

  • w2k_load.exe PATH_SYS_FILE /unload

J'ai modifié w2k_load.exe de Sven B. Schreiber pour qu'il fonctionne de Windows 2000 à Windows 10 (manifeste...).

osrloader

dézippez osrloaderv30.zip et utilisez ce programme graphique :

  • Sélectionnez un fichier .sys (chemin du pilote)
  • Enregistrez le service
  • Démarrez le service

Comment afficher les messages de débogage sans windbg

pour anciennes versions de Windows, utilisez simplement DbgView.exe fourni dans ce dépôt. Au fait, je l'ai modifié (manifeste...).

Pour les versions modernes de Windows, utilisez le dernier dbgview.exe du site sysinternals, et consultez ceci pour le dépannage :

  • 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

Prochaines étapes

Lisez les fichiers .pdf de ce dépôt et regardez les exemples dans le répertoire KmdKit18/examples.

AVERTISSEMENT : TOUT le code source ASM se trouve dans des fichiers .bat (code batch + asm mélangés dans le même fichier).

Exemple avec 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

Ce fichier contient du code BATCH qui génère un .sys et contient également le code source du pilote lui-même. Donc, oui, c'est très retors, le script de compilation et le code source sont ensemble.

advanced/FindShadowTable

advanced/FindShadowTable

Ceci est un exemple de la façon de trouver ServiceDescriptorTableShadow.

Il scanne simplement les threads dont l'ID est compris entre 80h et 400h pour tenter de trouver un thread dont KTHREAD.ServiceTable n'est pas égal à KeServiceDescriptorTable. Si un tel thread est trouvé, son KTHREAD.ServiceTable contient l'adresse de ServiceDescriptorTableShadow.

Surveillez la sortie de débogage du pilote avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

advanced/KbdSpy

advanced/KbdSpy

Ceci est un exemple d'un simple pilote filtre de clavier PS/2 hérité (non PnP). AVERTISSEMENT : vous ne pourrez pas l'attacher à la pile de clavier USB.

Testé sous : Windows 2000, XP et Server 2003.

advanced/MouSpy

advanced/MouSpy

Four-F, [email protected]. Ces fichiers de macros proviennent de mon package cocomac.

Ceci est un exemple d'un simple pilote filtre de souris PS/2 héritée (non PnP). AVERTISSEMENT : vous ne pourrez pas l'attacher à la pile de souris USB.

Testé sous : Windows 2000, XP et Server 2003.

advanced/SecureDevices

advanced/SecureDevices

Ceci est un exemple de la façon d'appliquer des paramètres de sécurité particuliers à un objet de périphérique nommé en appelant IoCreateDeviceSecure au lieu de IoCreateDevice.

Comme la routine IoCreateDeviceSecure ne fait pas partie du système d'exploitation, nous lions wdmsec.lib, qui contient toutes les routines nécessaires.

La bibliothèque wdmsec.lib que vous trouverez ici n'est pas celle fournie avec le DDK. J'ai dû la reconstruire pour réduire sa taille, en supprimant les membres inutiles.

basic/FileWorks

basic/FileWorks

Ceci est un exemple de la façon de créer, d'écrire dans, de lire et de supprimer le fichier.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/HiddenDriver

basic/HiddenDriver

Ceci est un exemple de la façon d'empaqueter le pilote dans les ressources.

Testé sous : Windows 2000, XP et Server 2003.

basic/IsSafeBootMode

basic/IsSafeBootMode

La façon de savoir si le système fonctionne en mode sans échec ou non.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/MemoryWorks/LookasideList

basic/MemoryWorks/LookasideList

Ceci est un exemple de la façon d'utiliser une liste lookaside et une liste doublement chaînée pour gérer les blocs de mémoire alloués à partir de la liste lookaside.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/MemoryWorks/seh

basic/MemoryWorks/seh

Ceci est un exemple de la façon de gérer les exceptions avec SEH. Mais souvenez-vous. VOUS NE POUVEZ PAS GÉRER TOUTES LES EXCEPTIONS AVEC SEH EN MODE NOYAU !

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/MemoryWorks/SharedSection

basic/MemoryWorks/SharedSection

Ceci est un exemple de la façon d'utiliser un objet de section nommé pour partager la mémoire entre un processus en mode utilisateur et un pilote en mode noyau.

Testé sous : Windows 2000, XP et Server 2003.

basic/MemoryWorks/SharingMemory

basic/MemoryWorks/SharingMemory

Ceci est un exemple d'une façon possible de partager le tampon mémoire entre le mode utilisateur et le mode noyau.

Testé sous : Windows 2000, XP et Server 2003.

basic/MemoryWorks/SystemModules

basic/MemoryWorks/SystemModules

Ceci est un exemple de la façon d'allouer de la mémoire en mode noyau. Pour ne pas l'allouer inutilement, nous la remplissons avec quelques informations système.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/RegistryWorks

basic/RegistryWorks

Ceci est un exemple de la façon de créer, définir, lire et supprimer la clé de registre. Utilisez KmdManager pour enregistrer/désenregistrer et démarrer. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/Sections

basic/Sections

Ceci est un exemple de la façon de placer du code dans différentes sections PE.

basic/Synchronization/MutualExclusion

basic/Synchronization/MutualExclusion

Ceci est un exemple de la façon d'implémenter l'accès mutuellement exclusif à la ressource.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

basic/Synchronization/SharedEvent - ProcessMon

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

Ceci est un exemple de la façon de notifier le mode utilisateur qu'une sorte d'événement s'est produite.

Testé sous : Windows 2000, XP et Server 2003.

basic/Synchronization/TimerWorks

basic/Synchronization/TimerWorks

Ceci est un exemple de la façon de créer, définir, attendre et annuler le minuteur. Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sous : Windows 2000, XP et Server 2003.

basic/WorkItem

basic/WorkItem

Exemple WorkItem

nodriver/DiskGeometry

nodriver/DiskGeometry

Dans cet exemple, nous traitons avec un périphérique disque existant.

Testé sur : Windows 2000, XP et Server 2003

nodriver/DriveLayout

nodriver/DriveLayout

Fournit des informations sur les caractéristiques de chaque partition de disque.

Testé sur : Windows 2000, XP et Server 2003

nodriver/FloppyGeometry

nodriver/FloppyGeometry

Dans cet exemple, nous traitons avec un périphérique disque existant.

Testé sur : Windows 2000, XP et Server 2003

nodriver/KbdGarland

nodriver/KbdGarland

Dans cet exemple, nous traitons avec un périphérique clavier existant.

Testé sur : Windows 2000, XP et Server 2003

nodriver/KbdTypematic

nodriver/KbdTypematic

Dans cet exemple, nous traitons avec un périphérique clavier existant. Cet exemple offre une partie des fonctionnalités de l'applet standard Panneau de configuration -> Clavier.

Testé sur : Windows 2000, XP et Server 2003

nodriver/MbrDump

nodriver/MbrDump

Lire le MBR depuis le mode utilisateur est la chose la plus facile à faire si vous savez à partir de quel périphérique lire.

Testé sur : Windows 2000, XP et Server 2003

nodriver/SerialBaudRate

nodriver/SerialBaudRate

Dans cet exemple, nous traitons avec un périphérique série existant.

Testé sur : Windows 2000, XP et Server 2003

setup/EnumDisk

setup/EnumDisk

Ceci est un exemple de la façon d'utiliser certaines des fonctions de périphérique d'installation. Énumère tous les périphériques disque disponibles et obtient la propriété du périphérique. Exécutez-le depuis la ligne de commande.

Testé sur : Windows 2000, XP et Server 2003

simple/Beeper

simple/Beeper

Comment émettre un bip avec le haut-parleur système.

Testé sur : Windows NT4.0+sp6, 2000, XP et Server 2003

simple/DateTime

simple/DateTime

Donne un accès direct aux E/S de port à un processus en mode utilisateur. Basé sur l'article de Dale Roberts et le code source c.

Testé sur : Windows 2000, XP et Server 2003

simple/GetKernelBase

simple/GetKernelBase

Ceci est un exemple de la façon de trouver la base de ntoskrnl.exe.

Utilisez KmdManager pour enregistrer/désenregistrer et démarrer/arrêter. Surveillez sa sortie de débogage avec DbgView (www.sysinternals.com) ou utilisez SoftICE.

Testé sur : Windows 2000, XP et Server 2003

simple/NtBuild

simple/NtBuild

Démontre la communication du pilote avec ReadFile, en utilisant aucune des deux méthodes. Et comment utiliser SEH en ring0.

Testé sur : Windows 2000, XP et Server 2003

simple/Simplest

simple/Simplest

Le pilote en mode noyau le plus simple possible qui ne fait absolument rien.

Testé sur : Windows 2000, XP et Server 2003

simple/Skeleton

simple/Skeleton

Le code squelette d'un pilote de périphérique en mode noyau Windows NT.

Testé sur : Windows 2000, XP et Server 2003

simple/VirtToPhys

simple/VirtToPhys

Démontre la communication du pilote avec DeviceIoControl, en utilisant la méthode tamponnée. Et comment traduire les adresses virtuelles.

Testé sur : Windows 2000, XP et Server 2003

simple/WhichIrqlAndContext

simple/WhichIrqlAndContext

Cet exemple vous permet de connaître l'IRQL et le contexte Processus/Thread auquel les routines principales du pilote s'exécutent. Utilisez DebugView (www.sysinternals.com) pour surveiller sa sortie.

Testé sur : Windows 2000, XP et Server 2003

Liens connexes

  • 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

Plus d'informations pour apprendre

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

  • Documentation du Windows Driver Kit (WDK) version 7.1.0 : https://www.microsoft.com/en-us/download/details.aspx?id=11800

  • Documentation WDK : https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

  • Manuel du développeur de logiciels des architectures Intel 64 et IA-32, volumes combinés : 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D et 4

  • Fuite du code source de Windows 2003, WRK, CRK ...

  • Livre Undocumented Windows NT de Prasad Dabak, Sandeep Phadke et Milind Borate

  • Livre Windows Kernel Programming de Pavel Yosifovich

  • Livres Windows Internals de Mark Russinovich, David A. Solomon et d'autres

  • (livre) The Rootkit Arsenal 2nd de Bill Blunden

  • (livre) What Makes It Page?: The Windows 7 (x64) Virtual Memory Manager par Enrico Martignetti

  • (livre) Subverting the Windows Kernel

  • (livre) Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats

  • osdev (communauté pour les personnes intéressées par le développement de systèmes d'exploitation)

  • github/gist divers, OSR, phrack, uninformed, openrce, kernelmode, rootkit.com, arteam...

Personnes à suivre

  • 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
Télécharger l’outil