6 UNREFERENCED_PARAMETER(policyInfo);
10 if (ProcessId == NULL) {
11 DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL,
"[-] Panoptes: Invalid ProcessId\n");
12 return STATUS_INVALID_PARAMETER;
15 NTSTATUS status = PsLookupProcessByProcessId(ProcessId, &eProcess);
16 if (!NT_SUCCESS(status)) {
17 DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL,
"[-] Panoptes: PsLookupProcessByProcessId failed with status 0x%X\n", status);
21 status = ObOpenObjectByPointer(
30 ObDereferenceObject(eProcess);
32 if (!NT_SUCCESS(status)) {
33 DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL,
"[-] Panoptes: ObOpenObjectByPointer failed with status 0x%X\n", status);
38 policyInfoLocal.
Policy = ProcessSignaturePolicy;
39 status =
ZwQueryInformationProcess(hProcess, ProcessMitigationPolicy, &policyInfoLocal,
sizeof(policyInfoLocal),
nullptr);
40 if (!NT_SUCCESS(status)) {
41 DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL,
"[-] Panoptes: ZwQueryInformationProcess failed with status 0x%X\n", status);
44 if (&policyInfoLocal != NULL) {
46 DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL,
"[+] Panoptes: Process with MicrosoftOnly");
52 return STATUS_SUCCESS;
NTSTATUS NTAPI ZwQueryInformationProcess(HANDLE hProcess, PROCESSINFOCLASS infoType, PVOID pBuf, ULONG lenBuf, SIZE_T *returnLength)