欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]win7 x64 下的Object Hook

[原创]win7 x64 下的Object Hook

x86下Object Hook很简单,后来到了x64,发现Hook蓝屏,于是自己动手研究了下,发现PspProcessOpen是下是mov rcx,qword ptr [rsp+28h]得出至少9个参数
于是开始敲代码呗,不知道的全部用int64替换掉,重要的几个参数通过逆向得到了,
直接上码吧 不需要过PG
上个图

#include "ntddk.h"

typedef NTSTATUS (*PSPPROCESSOPEN)(unsigned __int64 arg1,unsigned __int64 arg2,IN PEPROCESS Process OPTIONAL,IN PVOID Object,unsigned __int64 arg5,

								   unsigned __int64 arg6,unsigned __int64 arg7,unsigned __int64 arg8,unsigned __int64 arg9);

//g

ULONG	  IsHook = 1;

ULONGLONG oldOpenProcedure;

NTSTATUS MyOpenProcedure(unsigned __int64 arg1,unsigned __int64 arg2,IN PEPROCESS Process OPTIONAL,IN PVOID Object,unsigned __int64 arg5,

									unsigned __int64 arg6,unsigned __int64 arg7,unsigned __int64 arg8,unsigned __int64 arg9)

{

	if(strstr((char*)Object+0x2e0,"calc.exe")!=0)

	{

		if(strstr((char*)Process+0x2e0,"explorer.exe")!=0)//过滤explorer.exe

		{

			return ((PSPPROCESSOPEN)oldOpenProcedure)(arg1,arg2,Process,Object,arg5,arg6,arg7,arg8,arg9);

		}

		KdPrint(("%s OpenProcess %s",(char*)Process+0x2e0,(char*)Object+0x2e0));//不是2d8 ???;

		return STATUS_UNSUCCESSFUL;

	}

	return ((PSPPROCESSOPEN)oldOpenProcedure)(arg1,arg2,Process,Object,arg5,arg6,arg7,arg8,arg9);

}

void SetObjectHook()

{

	oldOpenProcedure = *(ULONGLONG*)((ULONGLONG)*PsProcessType+0x78);

	if(oldOpenProcedure ==0)

	{

		KdPrint(("OpenProcedure is NULL;"));

		IsHook =0;

		return;//如果是NULL 说明系统没有这个回调 返回;

	}

	*(ULONGLONG*)((ULONGLONG)*PsProcessType+0x78) = (ULONGLONG)MyOpenProcedure;

}

void ResObjectHook()

{

	if(IsHook==1)

	{

		*(ULONGLONG*)((ULONGLONG)*PsProcessType+0x78) = oldOpenProcedure;

	}

}

void DriverUnload(PDRIVER_OBJECT pDriverObject)

{

	ResObjectHook();

}

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING pUnicodeString)

{

	SetObjectHook();

	pDriverObject->DriverUnload = DriverUnload;

	return STATUS_SUCCESS;

}

上传的附件 object.png

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功