能力值:
( LV2,RANK:10 )
|
-
-
2 楼
|
能力值:
( LV7,RANK:100 )
|
-
-
3 楼
R3能造成蓝屏吗?NT技术何在?
个人感觉应该是通过某种方式引起内核抛出异常,比如内核通讯
绝不是简简单单的一个R3 API能做到的
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
QueueUserAPC
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
2楼说的那么清楚了,还在这瞎猜
|
能力值:
( LV7,RANK:100 )
|
-
-
6 楼
经过测试,此代码可以造成蓝屏
#include "stdafx.h"
#include <Windows.h>
typedef enum _HARDERROR_RESPONSE_OPTION {
OptionAbortRetryIgnore,
OptionOk,
OptionOkCancel,
OptionRetryCancel,
OptionYesNo,
OptionYesNoCancel,
OptionShutdownSystem,
OptionOkNoWait,
OptionCancelTryContinue
} HARDERROR_RESPONSE_OPTION;
typedef LONG (WINAPI *pfnZwRaiseHardError)(LONG ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStringParameterMask, PULONG_PTR Parameters, HARDERROR_RESPONSE_OPTION ValidResponseOptions, PULONG Response);
typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWCH Buffer;
} UNICODE_STRING;
BOOL DebugPrivilege(LPCTSTR PName, BOOL bEnable)
{
BOOL bResult = TRUE;
HANDLE hToken;
TOKEN_PRIVILEGES TokenPrivileges;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY|TOKEN_ADJUST_PRIVILEGES, &hToken))
{
bResult = FALSE;
return bResult;
}
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
LookupPrivilegeValue(NULL, PName, &TokenPrivileges.Privileges[0].Luid);
AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
if (GetLastError() != ERROR_SUCCESS)
{
bResult = FALSE;
}
CloseHandle(hToken);
return bResult;
}
int _tmain(int argc, _TCHAR* argv[])
{
UNICODE_STRING str = {8, 10, L"test"};
ULONG x, args[] = {0x12345678, 0x87654321, (ULONG)&str};
HMODULE hDll = GetModuleHandle(TEXT("ntdll.dll"));
pfnZwRaiseHardError ZwRaiseHardError = (pfnZwRaiseHardError)GetProcAddress(hDll, "ZwRaiseHardError");
DebugPrivilege(SE_SHUTDOWN_NAME, TRUE);
ZwRaiseHardError(0xC000021A, 3, 4, args, OptionShutdownSystem, &x);
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
3Q,应当是这个造成的
|
|
|