内核进程回调遍历【记录】

函数名:PsSetCreateProcessNotifyRoutine	//添加或删除进程创建退出例程!
原型:
NTSTATUS PsSetCreateProcessNotifyRoutine(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
  [in] BOOLEAN                        Remove
);
参数
[in] NotifyRoutine
指定调用方提供的进程创建回调例程的入口点。请参阅PCREATE_PROCESS_NOTIFY_ROUTINE。
[in] Remove
指示是否应将 NotifyRoutine 指定的例程添加到系统的通知例程列表中,或从中删除该例程。如果为 FALSE,则将指定的例程添加到列表中。如果为 TRUE,则从列表中删除指定的例程。
返回值
PsSetCreateProcessNotify 例程可以返回下列值之一:
返回代码	描述
STATUS_SUCCESS
给定的 NotifyRoutine 现在已向系统注册。
STATUS_INVALID_PARAMETER
给定的 NotifyRoutine 已注册,因此此调用是冗余调用,或者系统已达到注册进程创建回调的限制。
 1. `打开WinDbg`
 2. WinDbg->U PsSetCreateProcessNotifyRoutine

在这里插入图片描述

 3. 取出红色框中的地址 fffff807`0ddfdc80
 4. WinDbg->U fffff807`0ddfdc80 L200

在这里插入图片描述

 5. 继续取出地址 - 这其实就是一个进程回调数组首地址
 6. WinDbg->DQ fffff807`0dbbb060

得到所有进程回调对象地址
数一数是十个回调,嗯我看下PChunter或其他工具,都一致。

7. 取第一个地址试试ffffe706`2105042f->掩码->&0xFFFFFFFFFFFFFFF8 = 0xFFFFE70621050428
8. 得到的还不是真正的对象地址,需要WinDbg->DQ 0xFFFFE70621050428

在这里插入图片描述
这时候就得到了所谓的回调入口地址,对比下方PChunter的内容确实是一致,是第一个回调对象!
在这里插入图片描述
如果创建的是EX好像有HANDLE的什么,就不细研究了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Rose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值