内核/驱动遍历进程 GetProcess/OpenProcess
#include <ntddk.h>NTKERNELAPI
PVOID
MmGetSystemRoutineAddress (
__in PUNICODE_STRING SystemRoutineName
);
NTKERNELAPI
NTSTATUS
PsLookupProcessByProcessId(
__in HANDLE ProcessId,
__deref_out PEPROCESS *Process
);
NTKERNELAPI
NTSTATUS
NTAPI
ObOpenObjectByPointer(
IN PVOID Object,
IN ULONG HandleAttributes,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess OPTIONAL,
IN POBJECT_TYPE ObjectType OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
OUT PHANDLE Handle
);
NTKERNELAPI
UCHAR *
PsGetProcessImageFileName(
__in PEPROCESS Process
);
#define PsGetCurrentProcessImageFileName() PsGetProcessImageFileName(PsGetCurrentProcess())
NTKERNELAPI
HANDLE
PsGetProcessInheritedFromUniqueProcessId(
__in PEPROCESS Process
);
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
NTSTATUS DriverUnload(
IN PDRIVER_OBJECT DriverObject
);
//########################################################################################################################################
//功能:获取进程句柄
//########################################################################################################################################
HANDLE OpenProcess(
ULONG Processid
)
{
NTSTATUS status;
PEPROCESS Process = NULL;
HANDLE hProcess = NULL;
UNICODE_STRING Unicode;
status = PsLookupProcessByProcessId(Processid, &Process);
if (NT_SUCCESS(status))
{
RtlInitUnicodeString(&Unicode, L"PsProcessType");
PsProcessType = MmGetSystemRoutineAddress(&Unicode);
if (PsProcessType)
{
status = ObOpenObjectByPointer(
Process,
NULL,
NULL,
PROCESS_ALL_ACCESS,
(PVOID) * PsProcessType,
KernelMode,
&hProcess
);
if (NT_SUCCESS(status))
{
ObfDereferenceObject(Process);
return hProcess;
}
}
ObfDereferenceObject(Process);
}
return 0;
}
//########################################################################################################################################
//功能:获取进程 PEPROCESS
//########################################################################################################################################
PEPROCESS GetProcess(
ULONG Processid
)
{
NTSTATUS Status;
PEPROCESS Process = NULL;
PEPROCESS Result = NULL;
if (PsLookupProcessByProcessId((HANDLE)Processid, &Process) == STATUS_SUCCESS)
{
Result = Process;
ObDereferenceObject(Process);
}
return Result;
}
//########################################################################################################################################
//功能:枚举进程
//########################################################################################################################################
void EnumProcess()
{
PEPROCESS Process = NULL;
HANDLE hProcess = NULL;
ULONG Count = NULL;
ULONG ProcessId = NULL;
for (ProcessId = 0; ProcessId < 9999; ProcessId += 4)
{
Process = GetProcess(ProcessId);
if (Process != 0)
{
if (MmIsAddressValid((PVOID)Process))
{
DbgPrint("序号:%d 进程ID:%d 父进程ID:%d EPROCESS:0x%08X 进程名称:%s\n",
Count,
ProcessId,
PsGetProcessInheritedFromUniqueProcessId(Process),
Process,
PsGetProcessImageFileName(Process)
);
Count++;
}
}
}
}
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
DriverObject->DriverUnload = DriverUnload;
EnumProcess();
return STATUS_SUCCESS;
}
NTSTATUS DriverUnload(
IN PDRIVER_OBJECT DriverObject
)
{
return STATUS_SUCCESS;
}
经过试验 用hidetoolz 2.2 隐藏的进程 还有断链都能检测出来,最主要的是没硬编码 xp 2k3 win7通用
我手头上也没有多少隐藏进程的代码也就试验了这些,有不对的地方大家说。。。
Электрический Водонагреватель Проточный
Система менеджмента качества компании сертифицирована по стандарту ГОСТ Р ИСО 9001:2011 в части проектирования и производства электронагревателей и изделий электрометрии
Briggs Stratton 625 Series 190 Cc Запчасти
Запчасти Бриггс Страттон Купить
Избавьтесь от лишних хлопот по доставке холодильника, плиты или стиральной машины – наши специалисты самостоятельно заберут вышедшее из строя устройство, а после привезут обратно
The beginner’s guide to save money
Revitalize your inundated home with our skilled Water Damage Restoration Service, addressing everything from submerged floors to drenched walls!Our proficient professionals conduct every step, ensuring your residence is fully repaired and reinstated to its initial splendor!
Trust us to make your home safe, cozy, and vibrant again, no matter the magnitude of the catastrophe!
Call right now - 8338561952, USA
页:
[1]