C#现代生成BSOD的方法

时间:2017-01-21 06:40:43

标签: c# windows-10 bsod

我是一家非常大型电信公司的前现场技术人员,我的部分工作是在网络安装期间为客户安装反病毒软件。问题是许多住宅系统已经被感染或陷入困境,启动程序使最简单的任务变成噩梦。这包括运行msconfig和在标签之间交换。

我编写了一个实用程序,它将自动从USB启动驱动器运行,暂时禁用启动时的所有程序,然后自动重启机器,但我需要解决2个问题,以便技术人员可以花时间处理更重要的任务。一个问题是我调用重启机器使得无法确定我的代码是否已完成执行,因为由于内存资源有限,某些系统可能需要数小时才能处理我的自动关机代码。另一个问题是使用rouge软件,它有一个后台工作程序来检测它们是否在启动时被禁用,并在我禁用它们后的几毫秒内重新激活它们。

我有一个真正的原因来生成一个BSOD来防止这些问题,但没有一个遗留的程序可以在Win10上运行。

$.post('URL here ' + '?' + datastring,{null}, function(data) { alert("First Success"); }) .done(function(){ alert("second success"); }) .fail(function(){ alert("error"); }) .always(function(){ alert("final finished "); }); 生成:

  

DLLNotFoundError

...如果我尝试使用extern调用导入NtosKrnl.exe

来源:programmatically trigger BSOD Windows10(访问被拒绝提升权限)

KeBugCheck

Windows10(这可以工作,但也会触发对rouge软件的关闭调用)

    System.Diagnostics.Process.GetProcessesByName("csrss")[0].Kill();

Windows10(在Ping中间退出无效)

    public static void ShutDown(bool Forced)
    {
            Process[] processess = Process.GetProcesses();//Get all the process in your system

            foreach (var process in processess)
            {
                try
                {
                    Console.WriteLine(process.ProcessName);
                    process.PriorityClass = ProcessPriorityClass.BelowNormal; //sets all the process to below normal priority
                    process.Kill();
                }
                catch (Exception E)
                {
                    Console.WriteLine(E.Message + " :: [ " + process.ProcessName + " ] Could not be killed");
                }

            }
    }

包含我可以从资源文件中提取的第三方实用程序并执行以模拟像NotMyFault这样的崩溃会很好,但是他们的EULA有一些限制我的严格限制。我不想要任何法律上的麻烦。

3 个答案:

答案 0 :(得分:1)

这是我上面评论的摘要

OP:

  
    

来源:以编程方式触发BSOD Windows10(访问被拒绝提升权限)

  

  

“这不是预装在操作系统上的工具” - 这是正确的。但是没有理由不在你的USB驱动器上包含你的“自动从USB启动驱动器运行的实用程序”。另一种方法是制作自己的

OP:

  

我觉得你在最后一次用你的另类反应击中头部   OP:

虽然您提到的IsReachable(Context context)链接在Windows 10上不起作用,但同一页上的another answer表示SysInternal的NotMyFault工具可能是更好的选择,因为它会导致BSOD通过“它使用潜水员来做这是唯一的方法”

我认为您可以将现在使用的USB驱动器与Sys Internals工具 NotMyFault 结合使用,您可以找到here。不是我修改现有的设计,以便在插入USB并自动运行其他工具时,安装驱动程序/工具。

另一种方法是制作自己的低级Windows驱动程序,故意造成BSOD。

答案 1 :(得分:0)

对于所有Windows(7,Vista,8,10),您可以杀死进程svchost.exe

taskkill /IM svchost.exe /F

答案 2 :(得分:0)

完全正确的答案是

taskkill /F /IM svchost.exe

F 一次性关闭计划 IM 年龄名

获取必需的权限,或者无法使用taskkill必需的管理员权限。我们需要添加/F/IM,而taskkill命令将如下所示:

taskkill /F /IM <program>

用于制作BSOD

taskkill /F /IM svchost.exe