From 10057341377d01d5d07ca179587a7b35ef1a4946 Mon Sep 17 00:00:00 2001 From: AirDog46 Date: Sat, 4 Jul 2026 02:58:35 +0300 Subject: [PATCH] Upload to repository --- NtRaiseHardError.sln | 20 ++ NtRaiseHardError/NtRaiseHardError.cpp | 70 +++++++ NtRaiseHardError/NtRaiseHardError.vcproj | 230 +++++++++++++++++++++++ NtRaiseHardError/ReadMe.txt | 33 ++++ NtRaiseHardError/stdafx.cpp | 8 + NtRaiseHardError/stdafx.h | 20 ++ README.md | 16 +- pictures/bsod.png | Bin 0 -> 2675 bytes pictures/error.png | Bin 0 -> 21636 bytes 9 files changed, 396 insertions(+), 1 deletion(-) create mode 100644 NtRaiseHardError.sln create mode 100644 NtRaiseHardError/NtRaiseHardError.cpp create mode 100644 NtRaiseHardError/NtRaiseHardError.vcproj create mode 100644 NtRaiseHardError/ReadMe.txt create mode 100644 NtRaiseHardError/stdafx.cpp create mode 100644 NtRaiseHardError/stdafx.h create mode 100644 pictures/bsod.png create mode 100644 pictures/error.png diff --git a/NtRaiseHardError.sln b/NtRaiseHardError.sln new file mode 100644 index 0000000..df4023c --- /dev/null +++ b/NtRaiseHardError.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NtRaiseHardError", "NtRaiseHardError\NtRaiseHardError.vcproj", "{47BDCBBC-954F-4560-A875-BD2F4BA71573}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {47BDCBBC-954F-4560-A875-BD2F4BA71573}.Debug|Win32.ActiveCfg = Debug|Win32 + {47BDCBBC-954F-4560-A875-BD2F4BA71573}.Debug|Win32.Build.0 = Debug|Win32 + {47BDCBBC-954F-4560-A875-BD2F4BA71573}.Release|Win32.ActiveCfg = Release|Win32 + {47BDCBBC-954F-4560-A875-BD2F4BA71573}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/NtRaiseHardError/NtRaiseHardError.cpp b/NtRaiseHardError/NtRaiseHardError.cpp new file mode 100644 index 0000000..05e925e --- /dev/null +++ b/NtRaiseHardError/NtRaiseHardError.cpp @@ -0,0 +1,70 @@ +// NtRaiseHardError.cpp : Defines the entry point for the console application. +// + +#include "stdafx.h" + +EXTERN_C NTSTATUS NTAPI RtlAdjustPrivilege(ULONG Privilege, BOOLEAN Enable, BOOLEAN Client, PBOOLEAN WasEnabled); +EXTERN_C NTSTATUS NTAPI NtRaiseHardError(NTSTATUS ErrorStatus, ULONG Params, ULONG UnicodeStringParameterMask, PULONG_PTR Parameters, ULONG ValidResponseOptions, PULONG Response); + +ULONG evil(NTSTATUS option, NTSTATUS responseType) { + BOOLEAN fuck; + ULONG resp; + /*UNICODE_STRING Message; + ANSI_STRING MSG; + RtlInitUnicodeString(&Message, L"Puneet Ballabh"); + ULONG_PTR p[]={(ULONG_PTR)&Message,(ULONG_PTR)&Message,0x0,0x0}; */ // Parameters not implemennted yet + NTSTATUS privilege = RtlAdjustPrivilege(19, true, false, &fuck); + if (privilege != STATUS_SUCCESS) { + printf("\nERROR: Could not get privilege to shutdown system. This is needed for this program"); + printf("\nError code: %d (0x%x)", privilege, privilege); + printf("\n"); + Sleep(5000); + return privilege; + } + + const NTSTATUS limit = 0xC0000000, success = 0x00000000; + if (responseType == 0x6 && (option >= limit && option <= success)) + { + int confirmation = MessageBox(NULL, L"An Error value was specified and the response has been set to OptionShutdownSystem.\r\n !!! THIS WILL RESULT IN A BLUE SCREEN !!!\r\nAre you sure you want to continue?", L"WARNING", MB_YESNO|MB_ICONWARNING); + if (confirmation != 0x6) { + printf("\nConfirmation refused, closing..."); + Sleep(2000); + return confirmation; + } + } + Sleep(2000); + NTSTATUS herror = NtRaiseHardError(option, 0x0, 0x0, 0x0, responseType, &resp); + + printf("\nHard error result: %d (0x%x)", herror, herror); + printf("\nResponse: %d (0x%x)", resp, resp); + printf("\nClosing automatically in 5 seconds..."); + printf("\n"); + Sleep(5000); + return resp; +} + +int _tmain(int argc, _TCHAR* argv[]) +{ + int cfrm = 100; + printf("Welcome to NtRaiseHardError Generator\n"); + printf("Version 1.0. Currently missing any kind of parameter specifiers"); + Sleep(1000); + NTSTATUS value,response = 0xFFFFFFFF; + + + printf("\n\nFirst you need to specify the error you wanna generate\nTo see a complete list of errors, find all the statuses defined in ntstatus.h for your Windows version."); + printf("\nAs a rule of thumb: \n 0x0??????? -> Success codes\n 0x4??????? -> Information codes\n 0x8??????? -> Warning codes\n 0xC??????? -> Error codes"); + + printf("\n\nEnter NTSTATUS hex code: 0x"); + scanf("%lx%*c", &value); + printf("\nNow give a response option. \nValid options:\n0x0: OptionAbortRetryIgnore\n0x1: OptionOk\n0x2: OptionOkCancel\n0x3: OptionRetryCancel\n0x4: OptionYesNo\n0x5: OptionYesNoCancel\n0x6: OptionShutdownSystem (DANGEROUS)\n0x7: OptionOkNoWait (spawns message in tray)\n0x8: OptionCancelTryContinue\nInvalid Options default to 0x1"); + printf("\n\nEnter response option: 0x"); + scanf("%x%*c", &response); + if (response < 0x0 || response > 0x8) + response = 0x1; + + printf("\nWaiting for 4 seconds to allow user to close in case of mistake"); + Sleep(4000); + return evil(value, response); +} + diff --git a/NtRaiseHardError/NtRaiseHardError.vcproj b/NtRaiseHardError/NtRaiseHardError.vcproj new file mode 100644 index 0000000..f58966a --- /dev/null +++ b/NtRaiseHardError/NtRaiseHardError.vcproj @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NtRaiseHardError/ReadMe.txt b/NtRaiseHardError/ReadMe.txt new file mode 100644 index 0000000..6b3e201 --- /dev/null +++ b/NtRaiseHardError/ReadMe.txt @@ -0,0 +1,33 @@ +======================================================================== + CONSOLE APPLICATION : NtRaiseHardError Project Overview +======================================================================== + +AppWizard has created this NtRaiseHardError application for you. + +This file contains a summary of what you will find in each of the files that +make up your NtRaiseHardError application. + + +NtRaiseHardError.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +NtRaiseHardError.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named NtRaiseHardError.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/NtRaiseHardError/stdafx.cpp b/NtRaiseHardError/stdafx.cpp new file mode 100644 index 0000000..57f85de --- /dev/null +++ b/NtRaiseHardError/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// NtRaiseHardError.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/NtRaiseHardError/stdafx.h b/NtRaiseHardError/stdafx.h new file mode 100644 index 0000000..101ac2a --- /dev/null +++ b/NtRaiseHardError/stdafx.h @@ -0,0 +1,20 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + + +//#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include +#include +#define WIN32_NO_STATUS +#include +#undef WIN32_NO_STATUS +#define _WIN32_WINNT 0x0500 +#include +#include +#include + +// TODO: reference additional headers your program requires here diff --git a/README.md b/README.md index 6686ef0..228f19a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,17 @@ # NtRaiseHardError -make your NT hard \ No newline at end of file +A way to generate "hard errors" in all Windows NT versions (works from Windows NT 3.51 all the way to Windows 11). + +Currently, it can signal any NTSTATUS and can use any one of the 8 possible responses. + +## Error on Windows 10 + + + +## BSOD on Windows XP + + + +## TODO + +Add the ability to supply parameters to NtRaiseHardError in order to customize the messages. diff --git a/pictures/bsod.png b/pictures/bsod.png new file mode 100644 index 0000000000000000000000000000000000000000..e32b09be2d7c63f93230e72f4093f04e27c917f1 GIT binary patch literal 2675 zcmeI!TTGgF7zXe^v~iBAJ)~_cR%@3n+;qZBo$&-(U9DqNcSu-m2imFV)Dg5Q2#Q&( zY+WZ?4HBKF&d{4FtaFkH%4cgPam*?h4=pNC73`qWkCS}JVZC0KbQini_I>W2tlnp9_q%?)2r@t5JoLG% z%ZY2}#crV;0LC)D9I%;WKh-=nZPYsx{fc_Sw2`m`|HkeK=8C(*vp} zu4Uyww42?+X2qLT-ClZ+H0j79rPKi!OmfbMSaC6q4UQ271AOCs!Gi-z0fTIKw z)O5-!b4zrH<~F(7Vk}ghzAWv6o!VupDvO)L<9GH-jKdj>XIqPoH#!R_Sef&6`Ieo1 z{g_(()y4$3f*?9G!YJKlNvi42J6!)@pR~d2to7f4xnKNse*8)~TYY~*{=HB*&;PZV zK(^>fc=G1uQ|6tsMJdO#)s#TntXHI}QQvKs3_ZfnksV`+g5+MD`4E5iFa=k&-E=yY zfyA}bvS=swjusrodvX#vv`>(P#8P!*&rdp<_q8#2WD41prRTjTb09G~t)f%>=GE9> zq%P&wpK7mOp`IA7rn`Sw&~is?Rh87`S4MxgvLyYu?EOieQqr&G&zWaSjSKoQW}K*9 zzT$6dge}j58D5WpmuI}Lp$Z4sR}zE;oNwzyG210N{}Yo-G*ef^3Tjp@5!^BMcvGO7 z8xb2juZ6igLglqeXvx)54{_diBA8CT%klK1wE>gmRhCrx>5x=LUC<^keooL)h`g?% zCNh&f#$Z=+b*zi)g#LHyiRZdw=l?(m3ZG`9qQ#hUS2}3piha8)OH2F-oT3C8vW4-N zc@LPs8P`pY$;YeiX8L|1<1I)agH>4Nq%j!9s@S2$8$~H} z=qoJud^w6<90}?2pOg;1Eg_8`t?{{xs(k;R+r`Klz+=6qHnWnQvy(0*FKYXv zKI(?2ob=dVIBacP-q{ZdUG$(t1K+~%py(b|OviMF4)P_H*fm;~>}pmFjblwr+OzJ} zMvSWJL>6Wllx?xquX$#OQGCc1%?cAhCvpQL-NZOm@TNWYc>rTrn$QPt-aab`+ylxp z(hhc%bPyG9IC1{JBYBCTQ2ei}B~(kOmXNWR9pI3XkdpsV$rNw=2BoFGbSC@7GYRtE L$KY7uVpf67E0BBIu_cuVn5}7l8k-3$Fnpk|GYh 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