-
-
[求助]PsSetCreateProcessNotifyRoutine
-
发表于:
2014-8-23 12:08
6643
-
[求助]PsSetCreateProcessNotifyRoutine
”PsSetCreateProcessNotifyRoutine得到np和游戏的进程“,我是菜鸟研究代码,然后看大牛的解释文档看到这句话我百思不得其解,
这个函数功能PsSetCreateProcessNotifyRoutine程序添加一个driver-supplied回调例程,或者从列表删除它的例程调用过程时创建或删除。
NTSTATUS PsSetCreateProcessNotifyRoutine(
_In_ PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
_In_ BOOLEAN Remove
);
两个参数都是进来的
PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
VOID
(*PCREATE_PROCESS_NOTIFY_ROUTINE) (
IN HANDLE ParentId,
IN HANDLE ProcessId,
IN BOOLEAN Create
);
作者代码的流程是
自己定义的GameGuardProcessNotifyRoutine()-----》PsSetCreateProcessNotifyRoutine(GameGuardNotifyRoutine, FALSE);---》VOID GameGuardNotifyRoutine(IN HANDLE hparentId, IN HANDLE PId,IN BOOLEAN bCreate)
GameGuardNotifyRoutine部分代码头文件作者也定义了一次
VOID GameGuardNotifyRoutine(IN HANDLE hparentId, IN HANDLE PId,IN BOOLEAN bCreate)
{
PEPROCESS Eprocess;
PEPROCESS eprcx;
NTSTATUS rc;
//从函数可以得知这个函数是通过pid获得eprocess的
rc=PsLookupProcessByProcessId(PId,&Eprocess);//获取EPROCESS
到这个函数我就没看到那里有地方传IN HANDLE PId进来,作者就说已经得到了EPROCESS 的进程了。
求大牛普及小白
!!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课