r0遍历系统进程方法总结
来源:互联网 发布:js特效 编辑:程序博客网 时间:2024/05/22 06:28
方法1: ZwQuerySystemInformation
这个方法网上一搜一大堆,不举例了
方法2:暴力枚举PID枚举进程,代码:
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegStr){pDriverObj->DriverUnload = MyUnload;DbgPrint("DriverEntry...\n");//1.暴力枚举PID,枚举进程for (ULONG i = 0; i < 65535; i += 4){SearchProcessPID(i);}return STATUS_SUCCESS;}//暴力枚举PID,枚举进程NTSTATUS SearchProcessPID(ULONG pid){NTSTATUS status = STATUS_SUCCESS;PEPROCESS process = NULL;PUCHAR processName;status = PsLookupProcessByProcessId((HANDLE)pid, &process);processName = ExAllocatePool(NonPagedPool, sizeof(process));if (NT_SUCCESS(status)){processName = PsGetProcessImageFileName(process);DbgPrint("PID:%d,processName:%s\n", pid, processName);}
方法3和方法1原理相同,枚举eprocess结构体的ActiveProcessLinks链表实现,代码如下
//通过EPROCESS枚举进程NTSTATUS SearchProcessEPROCESS(){PEPROCESS process=NULL,firstProcess=NULL;NTSTATUS status = STATUS_SUCCESS;PLIST_ENTRY plist;process = firstProcess = PsGetCurrentProcess();do{PUCHAR ProcessNmae = NULL;ProcessNmae = PsGetProcessImageFileName(process);DbgPrint("PID:%d,ProcessName:%s\n", (HANDLE)PsGetProcessId(process), ProcessNmae);plist = (PLIST_ENTRY)((ULONG)process + ACTIVE_PROCESS_LINK);process = (PEPROCESS)((ULONG)plist->Flink - ACTIVE_PROCESS_LINK);if (process == firstProcess){break;}} while (process != NULL);return status;}
0 0
- r0遍历系统进程方法总结
- R0取进程路径
- R0 枚举进程信息
- 有关遍历进程中句柄的方法总结
- 有关遍历进程中句柄的方法总结
- 给系统加上一个防盗门 - 从r3到r0监控进程启动
- 遍历windows系统中的进程
- Wpf 遍历系统进程 C#
- r0调用ntOpenprocess函数枚举进程
- R0注入DLL到R3进程
- Map 遍历方法总结
- 遍历方法总结
- 系统进程总结
- 系统进程总结
- 枚举系统进程方法
- 进程注入方法总结
- andeq r0, r0, r0
- 编写模块遍历系统中的进程
- 《Maven实战》笔记二:使用Archetype生成项目骨架
- 面试遇到的一些问题
- 嵌入式 libevent功能使用简介
- java.lang.NoClassDefFoundError错误的一种解决办法
- 统治世界的十大算法
- r0遍历系统进程方法总结
- POJ A Knight's Journey(2488) -dfs&打印路径
- duilib创建的窗体添加边框阴影效果
- ORACLE 查看用户密码修改时间
- poj1252Euro Efficiency
- 递归与循环的区别
- hdu 4268 Alice and Bob(multiset)
- 考试题目分析
- Android 手机定位慢的解决方法