![]() |
Panoptes 1.0.0
Endpoint Detection and Response
|
#include "callbacks.h"#include "inject.h"#include "pano_query.h"#include <ntstrsafe.h>#include "shellcode.h"Go to the source code of this file.
Classes | |
| struct | InjectArgs |
Functions | |
| PVOID NTAPI | RtlxFindExportedRoutineByName (_In_ PVOID DllBase, _In_ PANSI_STRING ExportName) |
| OB_PREOP_CALLBACK_STATUS | PreOperationCallback (PVOID RegistrationContext, POB_PRE_OPERATION_INFORMATION OperationInformation) |
| PPANO_PROCESS_INFO | GetProcessInfo (HANDLE ProcessId) |
| VOID | RemoveProcessInfo (HANDLE ProcessId) |
| void NTAPI | KernelRoutine (PKAPC apc, PKNORMAL_ROUTINE *NormalRoutine, PVOID *NormalContext, PVOID *SystemArgument1, PVOID *SystemArgument2) |
| BOOLEAN | CanInject (PPANO_PROCESS_INFO processInfo) |
| VOID | InjectDllKernelApc (PVOID NormalContext, PVOID SystemArgument1, PVOID SystemArgument2) |
| NTSTATUS | InstallKernelModeApcToInjectDll (HANDLE ProcessId) |
| BOOLEAN | Is64BitProcess (PEPROCESS targetProcess) |
| VOID | LoadImageNotifyRoutine (PUNICODE_STRING FullImageName, HANDLE ProcessId, PIMAGE_INFO ImageInfo) |
| VOID | ProcessCreateCallback (PEPROCESS Process, HANDLE ProcessId, PPS_CREATE_NOTIFY_INFO CreateInfo) |
| NTSTATUS | InitializeKernelCallbacks () |
| VOID | RemoveCallbacks () |
Variables | |
| LIST_ENTRY | g_ProcessList {} |
| KSPIN_LOCK | g_ProcessListLock {} |
| PVOID | g_ObRegistrationHandle {} |
| BOOLEAN CanInject | ( | PPANO_PROCESS_INFO | processInfo | ) |
Definition at line 253 of file callbacks.cpp.
References _PANO_PROCESS_INFO::kernel32Loaded, _PANO_PROCESS_INFO::kernelBaseLoaded, and _PANO_PROCESS_INFO::ntdllLoaded.
Referenced by LoadImageNotifyRoutine().
| PPANO_PROCESS_INFO GetProcessInfo | ( | HANDLE | ProcessId | ) |
Definition at line 207 of file callbacks.cpp.
References g_ProcessList, and _PANO_PROCESS_INFO::ProcessId.
Referenced by InjectDllKernelApc(), and LoadImageNotifyRoutine().
| NTSTATUS InitializeKernelCallbacks | ( | ) |
Definition at line 558 of file callbacks.cpp.
References g_ProcessList, LoadImageNotifyRoutine(), and ProcessCreateCallback().
Referenced by DriverEntry().
| VOID InjectDllKernelApc | ( | PVOID | NormalContext, |
| PVOID | SystemArgument1, | ||
| PVOID | SystemArgument2 | ||
| ) |
Definition at line 262 of file callbacks.cpp.
References GetProcessInfo(), _PANO_PROCESS_INFO::is64Bit, KeInitializeApc(), KeInsertQueueApc(), _PANO_PROCESS_INFO::kernel32BaseAddress, KernelRoutine(), KeTestAlertThread(), OriginalApcEnvironment, and RtlxFindExportedRoutineByName().
Referenced by InstallKernelModeApcToInjectDll().
| NTSTATUS InstallKernelModeApcToInjectDll | ( | HANDLE | ProcessId | ) |
Definition at line 328 of file callbacks.cpp.
References InjectDllKernelApc(), KeInitializeApc(), KeInsertQueueApc(), KernelRoutine(), and OriginalApcEnvironment.
Referenced by LoadImageNotifyRoutine().
| BOOLEAN Is64BitProcess | ( | PEPROCESS | targetProcess | ) |
Definition at line 360 of file callbacks.cpp.
Referenced by LoadImageNotifyRoutine().
| void NTAPI KernelRoutine | ( | PKAPC | apc, |
| PKNORMAL_ROUTINE * | NormalRoutine, | ||
| PVOID * | NormalContext, | ||
| PVOID * | SystemArgument1, | ||
| PVOID * | SystemArgument2 | ||
| ) |
Definition at line 237 of file callbacks.cpp.
Referenced by InjectDllKernelApc(), and InstallKernelModeApcToInjectDll().
| VOID LoadImageNotifyRoutine | ( | PUNICODE_STRING | FullImageName, |
| HANDLE | ProcessId, | ||
| PIMAGE_INFO | ImageInfo | ||
| ) |
Definition at line 370 of file callbacks.cpp.
References CanInject(), GetProcessInfo(), _PANO_PROCESS_INFO::Injected, InstallKernelModeApcToInjectDll(), _PANO_PROCESS_INFO::is64Bit, Is64BitProcess(), _PANO_PROCESS_INFO::kernel32BaseAddress, _PANO_PROCESS_INFO::kernel32Loaded, _PANO_PROCESS_INFO::kernelBaseLoaded, _PANO_PROCESS_INFO::ntdllLoaded, PsIsProtectedProcess(), and RemoveProcessInfo().
Referenced by InitializeKernelCallbacks(), and RemoveCallbacks().
| OB_PREOP_CALLBACK_STATUS PreOperationCallback | ( | PVOID | RegistrationContext, |
| POB_PRE_OPERATION_INFORMATION | OperationInformation | ||
| ) |
Definition at line 153 of file callbacks.cpp.
| VOID ProcessCreateCallback | ( | PEPROCESS | Process, |
| HANDLE | ProcessId, | ||
| PPS_CREATE_NOTIFY_INFO | CreateInfo | ||
| ) |
Definition at line 518 of file callbacks.cpp.
References g_ProcessList, _PANO_PROCESS_INFO::Injected, _PANO_PROCESS_INFO::kernel32Loaded, _PANO_PROCESS_INFO::kernelBaseLoaded, _PANO_PROCESS_INFO::ListEntry, _PANO_PROCESS_INFO::ntdllLoaded, _PANO_PROCESS_INFO::ProcessId, QueryProcessMitigationPolicy(), and RemoveProcessInfo().
Referenced by InitializeKernelCallbacks(), and RemoveCallbacks().
| VOID RemoveCallbacks | ( | ) |
Definition at line 614 of file callbacks.cpp.
References LoadImageNotifyRoutine(), and ProcessCreateCallback().
Referenced by UnloadPanoptes().
| VOID RemoveProcessInfo | ( | HANDLE | ProcessId | ) |
Definition at line 223 of file callbacks.cpp.
References g_ProcessList, and _PANO_PROCESS_INFO::ProcessId.
Referenced by LoadImageNotifyRoutine(), and ProcessCreateCallback().
| PVOID NTAPI RtlxFindExportedRoutineByName | ( | _In_ PVOID | DllBase, |
| _In_ PANSI_STRING | ExportName | ||
| ) |
Definition at line 14 of file callbacks.cpp.
References _IMAGE_EXPORT_DIRECTORY::AddressOfFunctions, _IMAGE_EXPORT_DIRECTORY::AddressOfNameOrdinals, _IMAGE_EXPORT_DIRECTORY::AddressOfNames, IMAGE_DIRECTORY_ENTRY_EXPORT, _IMAGE_EXPORT_DIRECTORY::NumberOfFunctions, _IMAGE_EXPORT_DIRECTORY::NumberOfNames, and RtlImageDirectoryEntryToData().
Referenced by InjectDllKernelApc().
| PVOID g_ObRegistrationHandle {} |
Definition at line 10 of file callbacks.cpp.
| LIST_ENTRY g_ProcessList {} |
Definition at line 8 of file callbacks.cpp.
Referenced by GetProcessInfo(), InitializeKernelCallbacks(), ProcessCreateCallback(), and RemoveProcessInfo().
| KSPIN_LOCK g_ProcessListLock {} |
Definition at line 9 of file callbacks.cpp.