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)

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودعالموقع الإلكتروني
13018منذ 3 سنواتتمت المراجعة من قبل Kitploit

برمجة نواة masm32

مستودع 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

في هذه اللحظة يتم إنشاء ملف .sys في C:\

كيفية تحميل/إلغاء تحميل برنامج تشغيل

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 ليعمل من ويندوز 2000 إلى ويندوز 10 (manifest...)

osrloader

قم بفك ضغط osrloaderv30.zip واستخدم هذا البرنامج الرسومي:

  • حدد ملف .sys (مسار برنامج التشغيل)
  • سجّل الخدمة
  • ابدأ الخدمة

كيفية عرض رسائل التصحيح بدون windbg

لإصدارات ويندوز الأقدم فقط استخدم DbgView.exe المرفق في هذا المستودع. بالمناسبة، قمت بتعديله (manifest...)

بالنسبة لإصدارات ويندوز الحديثة استخدم آخر إصدار من 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 (كود batch + كود 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

يحتوي هذا الملف على كود BATCH الذي يولّد ملف .sys ويحتوي أيضًا على كود برنامج التشغيل المصدر نفسه. لذا، نعم، الأمر معقد جدًا، فسكربت البناء وكود المصدر معًا في مكان واحد

advanced/FindShadowTable

advanced/FindShadowTable

هذا مثال حول كيفية العثور على ServiceDescriptorTableShadow.

إنه فقط يمسح الخيوط (threads) ذات المعرف 80h-400h محاولًا العثور على خيط يكون فيه KTHREAD.ServiceTable غير مساوٍ لـ KeServiceDescriptorTable. إذا تم العثور على مثل هذا الخيط، فإن KTHREAD.ServiceTable الخاص به يحمل عنوان ServiceDescriptorTableShadow.

شاهد مخرجات التصحيح الخاصة ببرنامج التشغيل باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

advanced/KbdSpy

advanced/KbdSpy

هذا مثال لبرنامج تشغيل تصفية بسيط قديم (غير PnP) للوحة مفاتيح PS/2. تحذير: ستفشل في إرفاقه بمكدس لوحة المفاتيح USB.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

advanced/MouSpy

advanced/MouSpy

Four-F, [email protected] ملفات الماكرو هذه من حزمتي cocomac.

هذا مثال لبرنامج تشغيل تصفية بسيط قديم (غير PnP) لفأرة PS/2. تحذير: ستفشل في إرفاقه بمكدس الفأرة USB.

تم الاختبار على: ويندوز 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.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/HiddenDriver

basic/HiddenDriver

هذا مثال حول كيفية تعبئة برنامج التشغيل داخل الموارد (resources).

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/IsSafeBootMode

basic/IsSafeBootMode

الطريقة التي تعرف بها ما إذا كان النظام يعمل في الوضع الآمن أم لا.

استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/MemoryWorks/LookasideList

basic/MemoryWorks/LookasideList

هذا مثال حول كيفية استخدام قائمة lookaside والقائمة المرتبطة المزدوجة لإدارة كتل الذاكرة المخصصة من قائمة lookaside.

استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله/إيقافه. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/MemoryWorks/seh

basic/MemoryWorks/seh

هذا مثال حول كيفية التعامل مع الاستثناءات باستخدام SEH. لكن تذكر. لا يمكنك التعامل مع جميع الاستثناءات باستخدام SEH في وضع النواة!

استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله/إيقافه. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/MemoryWorks/SharedSection

basic/MemoryWorks/SharedSection

هذا مثال حول كيفية استخدام كائن مقطع مسمى (section object) لمشاركة الذاكرة بين عملية وضع المستخدم وبرنامج تشغيل وضع النواة.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/MemoryWorks/SharingMemory

basic/MemoryWorks/SharingMemory

هذا مثال على إحدى الطرق الممكنة لمشاركة مخزن الذاكرة بين وضع المستخدم ووضع النواة.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/MemoryWorks/SystemModules

basic/MemoryWorks/SystemModules

هذا مثال حول كيفية تخصيص الذاكرة في وضع النواة. لكي لا نخصصها دون فائدة، نقوم بملئها ببعض معلومات النظام.

استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله/إيقافه. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/RegistryWorks

basic/RegistryWorks

هذا مثال حول كيفية إنشاء مفتاح الريجستري وتعيينه وقراءته وحذفه. استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 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)

هذا مثال حول كيفية إخطار وضع المستخدم بحدوث نوع ما من الأحداث.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/Synchronization/TimerWorks

basic/Synchronization/TimerWorks

هذا مثال حول كيفية إنشاء المؤقت وتعيينه والانتظار عليه وإلغائه. استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله/إيقافه. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003.

basic/WorkItem

basic/WorkItem

مثال WorkItem

nodriver/DiskGeometry

nodriver/DiskGeometry

في هذا المثال نتعامل مع جهاز قرص موجود.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/DriveLayout

nodriver/DriveLayout

يوفر معلومات حول ميزات كل قسم من أقسام القرص.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/FloppyGeometry

nodriver/FloppyGeometry

في هذا المثال نتعامل مع جهاز قرص موجود.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/KbdGarland

nodriver/KbdGarland

في هذا المثال نتعامل مع جهاز لوحة مفاتيح موجود.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/KbdTypematic

nodriver/KbdTypematic

في هذا المثال نتعامل مع جهاز لوحة مفاتيح موجود. يقدم هذا المثال بعضًا من وظائف لوحة التحكم القياسية -> برنامج لوحة المفاتيح.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/MbrDump

nodriver/MbrDump

قراءة MBR من وضع المستخدم هي أسهل شيء يمكن فعله إذا كنت تعرف الجهاز الذي يجب القراءة منه.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

nodriver/SerialBaudRate

nodriver/SerialBaudRate

في هذا المثال نتعامل مع جهاز تسلسلي موجود.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

setup/EnumDisk

setup/EnumDisk

هذا مثال حول كيفية استخدام بعض دوال أجهزة الإعداد (setup device functions). يقوم بتعداد جميع أجهزة القرص المتاحة والحصول على خاصية الجهاز. قم بتشغيله من سطر الأوامر.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/Beeper

simple/Beeper

كيفية إصدار صفير باستخدام مكبر صوت النظام.

تم الاختبار على: ويندوز NT4.0+sp6 و2000 وXP وServer 2003

simple/DateTime

simple/DateTime

يعطي وصولًا مباشرًا لمنافذ الإدخال/الإخراج لعملية وضع المستخدم استنادًا إلى مقالة وكود المصدر بلغة C الخاصة بـ Dale Roberts.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/GetKernelBase

simple/GetKernelBase

هذا مثال حول كيفية العثور على قاعدة ntoskrnl.exe.

استخدم KmdManager للتسجيل/إلغاء التسجيل وتشغيله/إيقافه. شاهد مخرجات التصحيح الخاصة به باستخدام DbgView (www.sysinternals.com) أو استخدم SoftICE.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/NtBuild

simple/NtBuild

يوضح اتصال برنامج التشغيل باستخدام ReadFile، دون استخدام أي من الطريقتين. وكيفية استخدام SEH في ring0.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/Simplest

simple/Simplest

أبسط برنامج تشغيل ممكن لوضع النواة لا يفعل شيئًا على الإطلاق.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/Skeleton

simple/Skeleton

الكود الهيكلي لبرنامج تشغيل جهاز بوضع النواة لويندوز NT.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/VirtToPhys

simple/VirtToPhys

يوضح اتصال برنامج التشغيل باستخدام DeviceIoControl، باستخدام الطريقة المخزنة (buffered method). وكيفية ترجمة العناوين الافتراضية.

تم الاختبار على: ويندوز 2000 وXP وServer 2003

simple/WhichIrqlAndContext

simple/WhichIrqlAndContext

يتيح لك هذا المثال معرفة IRQL وسياق العملية/الخيط التي تعمل عندها روتينات برنامج التشغيل الرئيسية. استخدم DebugView (www.sysinternals.com) لمشاهدة مخرجاته.

تم الاختبار على: ويندوز 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

  • تسريب كود مصدر ويندوز 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 2nd بقلم 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
تنزيل الأداة