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)

Instructions

  • 이 저장소를 다운로드/클론하세요
  • 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\에 복사하세요

Basic example

  • beeper.asm을 C:\로 복사하세요
  • beeper.bat을 C:\로 복사하세요
  • beeper.bat을 실행하세요

이 시점에 C:\에 .sys 파일이 생성됩니다.

How to load/unload a driver

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

저는 Sven B. Schreiber의 w2k_load.exe를 Windows 2000부터 Windows 10까지 작동하도록 수정했습니다(매니페스트...).

osrloader

osrloaderv30.zip의 압축을 풀고 이 GUI 프로그램을 사용하세요:

  • .sys 파일(드라이버 경로) 선택
  • 서비스 등록
  • 서비스 시작

windbg 없이 디버그 메시지를 보는 방법

이전 Windows에서는 이 저장소에 첨부된 DbgView.exe를 사용하면 됩니다. 참고로 저는 이 파일을 수정했습니다(매니페스트...).

최신 Windows에서는 sysinternals 웹 사이트의 최신 dbgview.exe를 사용하고 문제 해결을 위해 다음을 확인하세요:

  • 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를 생성하는 BATCH 코드가 들어 있을 뿐만 아니라 드라이버 소스 코드 자체도 포함되어 있습니다. 그래서 맞습니다. 매우 까다롭게도 빌드 스크립트와 소스 코드가 함께 있습니다.

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

IoCreateDevice 대신 IoCreateDeviceSecure를 호출하여 명명된 디바이스 개체에 특정 보안 설정을 적용하는 방법을 보여주는 예제입니다.

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

사용자 모드 프로세스에 직접 포트 I/O 액세스를 제공합니다. Dale Roberts의 문서 및 C 소스 코드를 기반으로 합니다.

테스트 환경: 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 및 neither method를 사용한 드라이버 통신을 보여줍니다. 또한 ring0에서 SEH를 사용하는 방법을 보여줍니다.

테스트 환경: 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

buffered method를 사용하여 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 ...

  • Prasad Dabak, Sandeep Phadke & Milind Borate의 Undocumented Windows NT 책

  • Pavel Yosifovich의 Windows Kernel Programming 책

  • Mark Russinovich, David A. Solomon 외의 Windows Internals 책

  • (책) Bill Blunden의 The Rootkit Arsenal 2nd

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

  • (책) Subverting the Windows Kernel

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

  • osdev(OS 개발에 관심이 있는 사람들을 위한 커뮤니티)

  • 각종 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
도구 다운로드