/WindowsDanger

A REALLY Danger Windows Driver Plugin, Turn all threads Ring0!

Primary LanguageC

WindowsDanger

WindowsDanger is an open-source project that help developers to Learn Windows Kernel and other x86 Features.

But, We are NOT modify/patch Windows Code

We Directly Modify x86 Context Instead

So, We will not bypass PatchGuard, Using Official Test-Mode Instead

This driver Dreamed to assist developers accessing and manipulating system resources more conveniently. By installing and launching this driver, you can elevate all threads to Ring0, allowing for full control over low-level hardware and system resources.

⚠️ Warning: Please be aware that using WindowsDanger may result in system instability, data loss, or other unintended consequences. Use with caution and perform testing in a safe environment.

This project is still under development. For more quick access, please use the QEMU_Danger project.

Ke386SetIoAccessMap and Ke386IoSetAccessProcess is NOT available in Win10/Server 2019 and above. It's better to learn how the x86 CPU work within TSS and IOPM.

Currently achieved:

  • Disable Write-Protection by modifiy CR0
  • Hack Ring3 Segment in GDT to Ring0
  • Insert a new IDT entry 78H

Known Issues:

  • Multiple CPU Failure. Just use one Core CPU VM for now.

Ideas:

  • Use soft int instruct from Ring3, and hack stack for return CS RPL -> 0, then iretq.
  • Insert a new Call Gate, then call it from Ring3, then hack stack for return CS RPL -> 0, then return.

Learning Resources

  1. Lab Experiment HandBooks: Contains Microsoft Learn Student Ambassador Workshop
  2. Download the WinDbg Preview tool from the Microsoft Store or Non Store
  3. Install WDK
  4. Read Kernel Debugging Document on the Microsoft Learn
  5. Read My Experiment log for more details
  6. Cource: Arch2001_x86-64_OS_Internals

Features

  • Elevate all threads to Ring0 for full control over low-level system resources
  • Facilitate hardware debugging and reverse engineering tasks
  • Support for Windows operating systems

Installation

MUST Attach Kernel Debugger to prevent BSOD, because int 3 will trigger BSOD without Kernel Debugger.

  1. Download the latest version of the WindowsDanger driver.
  2. Copy the driver file to an appropriate directory (e.g., C:\Windows\System32\drivers).
  3. Run the following command with administrator privileges to install the driver:
sc create WindowsDanger type= kernel binPath= C:\Windows\System32\drivers\WindowsDanger.sys
  1. Start the driver:
sc start WindowsDanger

Uninstallation

  1. Stop the driver:
sc stop WindowsDanger
  1. Remove the driver:
sc delete WindowsDanger
  1. Delete the driver file.

License

WindowsDanger is licensed under the MIT License. Please refer to the LICENSE file for more information.

Contributing

We welcome your contributions to the WindowsDanger project! Please see CONTRIBUTING.md for how to get started.

Support and Feedback

If you encounter any issues while using WindowsDanger, or have any suggestions and feedback, please submit your concerns on the Issues page.

Disclaimer

WindowsDanger is intended for learning and research purposes only. The use of this driver may result in system instability, data loss, or other unintended consequences. The project authors and contributors are not responsible for any damages or losses resulting from the use of this driver. By using WindowsDanger, you agree to assume all risks.