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

Sven B. Schreiber の w2k_load.exe を、Windows 2000 から Windows 10 まで動作するように修正しました(マニフェスト...)

osrloader

osrloaderv30.zip を解凍し、この GUI プログラムを使用します:

  • .sys ファイル(ドライバパス)を選択する
  • Register service(サービスを登録する)
  • Start service(サービスを開始する)

windbg を使わずにデバッグメッセージを表示する方法

古い Windows の場合、このリポジトリに同梱されている DbgView.exe を使用してください。ちなみに、これは私が修正したものです(マニフェスト...)

最新の Windows の場合は、sysinternals の Web サイトから最新の 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

ルックアサイドリストと二重リンクリストを使用して、 ルックアサイドリストから割り当てられたメモリブロックを管理する方法のサンプルです。

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

ユーザーモードとカーネルモードの間でメモリバッファを共有する 1 つの可能な方法のサンプルです。

テスト済み: 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

セットアップデバイス関数の一部を使用する方法のサンプルです。 利用可能なすべてのディスクデバイスを列挙し、デバイスのプロパティを取得します。 コマンドラインから実行してください。

テスト済み: 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 を使用したドライバ通信のデモです。 どちらのメソッドも使用しません。また、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

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) Version 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 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4

  • Windows 2003 ソースコードリーク、WRK、CRK ...

  • Undocumented Windows NT book by Prasad Dabak, Sandeep Phadke & Milind Borate

  • Windows Kernel Programming book by Pavel Yosifovich

  • Windows Internals books by Mark Russinovich, David A. Solomon & others

  • (書籍) The Rootkit Arsenal 2nd by Bill Blunden

  • (書籍) What Makes It Page?: The Windows 7 (x64) Virtual Memory Manager by Enrico Martignetti

  • (書籍) Subverting the Windows Kernel

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

  • osdev(OS 開発に興味のある人々のコミュニティ)

  • random 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
ツールをダウンロード