Win64 驱动内核编程-31.枚举与删除映像回调

本文介绍了Win64驱动内核编程中的映像回调技术,用于拦截RING3和RING0的映像加载。通过示例代码展示了如何在PsSetLoadImageNotifyRoutine中实现映像回调,并提到了系统中的开关PspNotifyEnableMask,当其值为0时,所有相关回调将失效。此外,还提及了这一技术在反游戏保护中的应用。
摘要由CSDN通过智能技术生成

枚举与删除映像回调

    映像回调可以拦截 RING3 和 RING0 的映像加载。某些游戏保护会用此来拦截黑名单中的驱动加载,比如 XUETR、WIN64AST 的驱动。同理,在反游戏保护的过程中,也可以拦截游戏驱动的加载。

    跟进程/线程回调类似,映像回调也存储在数组里。这个数组的“符号名”是PspLoadImageNotifyRoutine。我们可以在 PsSetLoadImageNotifyRoutine 中找到它:

实现的代码如下:

 

ULONG64 FindPspLoadImageNotifyRoutine()
{
ULONG64	i=0,pCheckArea=0;
UNICODE_STRING	unstrFunc;
RtlInitUnicodeString(&unstrFunc, L"PsSetLoadImageNotifyRoutine");
pCheckArea = (ULONG64)MmGetSystemRoutineAddress (&unstrFunc);
DbgPrint("PsSetLoadImageNotifyRoutine: %llx",pCheckArea);
for(i=pCheckArea;i<pCheckArea+0xff;i++)
{
if(*(PUCHAR)i==0x48 && *(PUCHAR)(i+1)==0x8d && *(PUCHAR)(i+2)==0x0d)	//lea rcx,xxxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值