Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
masm32-kernel-programming — Programmazione kernel masm32, driver, tutorial, esempi e strumenti (crediti Four-F) | Kitploit
Strumenti/GitHubGitHub/therealdreg/masm32-kernel-programming
Reverse EngineeringAnalisi MalwareAnalisi di BinariApprendimento e FormazioneRisorse CurateLab e Pratica
GitHubtherealdreg/masm32-kernel-programming

masm32-kernel-programming

Programmazione kernel masm32, driver, tutorial, esempi e strumenti (crediti Four-F)

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi RepositorySito web
1301893 anni faRevisionato da Kitploit
Condividi

masm32-kernel-programming

Repo di Dreg per le sue esigenze personali

Programmazione kernel masm32, driver, tutorial, esempi e strumenti (crediti Four-F)

Istruzioni

  • scarica/clona questo repo
  • esegui masm32v11r_install.exe
  • fai clic sull'immagine di installazione (la terra)
  • installa masm32 in C:\
  • consiglio di aggiungere alle variabili d'ambiente PATH le seguenti voci:
    • C:\masm32\bin
    • C:\masm32
  • copia il contenuto di KmdKit18\include\ in C:\masm32\include\
  • copia il contenuto di KmdKit18\macros\ in C:\masm32\macros\
  • copia il contenuto di KmdKit18\lib\ in C:\masm32\lib\

Esempio base

  • copia beeper.asm in C:\
  • copia beeper.bat in C:\
  • esegui beeper.bat

A questo punto viene creato un file .sys in C:\

Come caricare/scaricare un driver

w2k_load.exe - il modo migliore

carica il driver:

  • w2k_load.exe C:\beeper.sys

w2k_load.exe o osrloader.exe mostra un errore durante il caricamento di beeper.sys, ignoralo e basta.

Questo errore viene generato dal codice del driver stesso quando termina la propria esecuzione (con questo trucco non è necessario scaricarlo)

mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
ret

Quindi, se beep.sys è caricato correttamente nel kernel, dovresti sentire un beep dagli altoparlanti (il codice del driver genera un beep)

Quando devi scaricare un driver usa:

  • w2k_load.exe PATH_SYS_FILE /unload

Ho modificato w2k_load.exe di Sven B. Schreiber per farlo funzionare da Windows 2000 a Windows 10 (manifest...)

osrloader

decomprimi osrloaderv30.zip e usa questo programma GUI:

  • Seleziona un file .sys (percorso del driver)
  • Registra il servizio
  • Avvia il servizio

Come visualizzare i messaggi di debug senza windbg

per versioni precedenti di Windows usa semplicemente DbgView.exe incluso in questo repo. Comunque, l'ho modificato (manifest...)

Per le versioni moderne di Windows usa l'ultima versione di dbgview.exe dal sito di sysinternals e controlla questo per la risoluzione dei problemi:

  • 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

Prossimi passi

Leggi i file .pdf in questo repo e guarda gli esempi nella directory KmdKit18/examples

AVVERTENZA: TUTTO il codice sorgente ASM è all'interno di file .bat (codice batch + asm mescolati nello stesso file)

Esempio con advanced\FindShadowTable\FindShadowTable.bat

;@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

Questo file contiene codice BATCH che genera un .sys e contiene anche il codice sorgente del driver stesso. Quindi sì, è molto complesso: lo script di build e il codice sorgente sono insieme

advanced/FindShadowTable

advanced/FindShadowTable

Questo è un esempio di come trovare ServiceDescriptorTableShadow.

Scansiona semplicemente i thread con ID 80h-400h cercando di trovare un thread il cui KTHREAD.ServiceTable non sia uguale a KeServiceDescriptorTable. Se viene trovato un thread del genere, il suo KTHREAD.ServiceTable contiene l'indirizzo di ServiceDescriptorTableShadow.

Osserva l'output di debug del driver con DbgView (www.sysinternals.com) o usa SoftICE.

Testato su: Windows 2000, XP e Server 2003.

advanced/KbdSpy

advanced/KbdSpy

Questo è un esempio di un semplice driver filtro PS/2 legacy (non PnP) per tastiera. AVVERTENZA: non riuscirai ad associarlo allo stack della tastiera USB.

Testato su: Windows 2000, XP e Server 2003.

advanced/MouSpy

advanced/MouSpy

Four-F, [email protected] Questi file macro provengono dal mio pacchetto cocomac.

Questo è un esempio di un semplice driver filtro PS/2 legacy (non PnP) per mouse. AVVERTENZA: non riuscirai ad associarlo allo stack del mouse USB.

Testato su: Windows 2000, XP e Server 2003.

advanced/SecureDevices

advanced/SecureDevices

Questo è un esempio di come applicare specifiche impostazioni di sicurezza a un oggetto device con nome chiamando IoCreateDeviceSecure invece di IoCreateDevice.

Poiché la routine IoCreateDeviceSecure non fa parte del sistema operativo, colleghiamo wdmsec.lib, che contiene tutte le routine necessarie.

La libreria wdmsec.lib che troverai qui non è quella fornita con il DDK. Ho dovuto ricompilarla per ridurne le dimensioni, rimuovendo i membri non necessari.

basic/FileWorks

basic/FileWorks

Questo è un esempio di come creare, scrivere, leggere ed eliminare un file.

Usa KmdManager per registrarlo/annullarne la registrazione e avviarlo. Osserva il suo output di debug con DbgView (www.sysinternals.com) o usa SoftICE.

Testato su: Windows 2000, XP e Server 2003.

basic/HiddenDriver

basic/HiddenDriver

Questo è un esempio di come impacchettare il driver nelle risorse.

Testato su: Windows 2000, XP e Server 2003.

basic/IsSafeBootMode

basic/IsSafeBootMode

Il modo per sapere se il sistema è in esecuzione in modalità provvisoria o meno.

Usa KmdManager per registrarlo/annullarne la registrazione e avviarlo. Osserva il suo output di debug con DbgView (www.sysinternals.com) o usa SoftICE.

Testato su: Windows 2000, XP e Server 2003.

basic/MemoryWorks/LookasideList

basic/MemoryWorks/LookasideList

Questo è un esempio di come usare la lookaside list e la lista doppiamente collegata per gestire i blocchi di memoria allocati dalla lookaside list.

Usa KmdManager per registrarlo/annullarne la registrazione e avviarlo/fermarlo. Osserva il suo output di debug con DbgView (www.sysinternals.com) o usa SoftICE.

Testato su: Windows 2000, XP e Server 2003.

basic/MemoryWorks/seh

basic/MemoryWorks/seh

Questo è un esempio di come gestire le eccezioni con SEH. Ma ricorda: NON PUOI GESTIRE TUTTE LE ECCEZIONI CON SEH IN MODALITÀ KERNEL!

Usa KmdManager per registrarlo/annullarne la registrazione e avviarlo/fermarlo. Osserva il suo output di debug con DbgView (www.sysinternals.com) o usa SoftICE.

Testato su: Windows 2000, XP e Server 2003.

basic/MemoryWorks/SharedSection

basic/MemoryWorks/SharedSection

Questo è un esempio di come usare l'oggetto sezione con nome per condividere la memoria tra un processo in modalità utente e un driver in modalità kernel.

Testato su: Windows 2000, XP e Server 2003.

basic/MemoryWorks/SharingMemory

basic/MemoryWorks/SharingMemory

Questo è un esempio di un possibile modo per condividere il buffer di memoria tra modalità utente e kernel.

Testato su: Windows 2000, XP e Server 2003.

basic/MemoryWorks/SystemModules

Scarica lo strumento