吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 742|回复: 0
收起左侧

[新手问题] 关于内核NtDeleteFile勾住却没有调用的问题

[复制链接]
0X0011 发表于 2023-4-12 21:45
最近在学习内核相关知识,想尝试利用SSDTHOOK一下系统函数,废话不多说,直接上代码

[C] 纯文本查看 复制代码
//SSDT相关全局变量
ULONG g_NtDeleteFileAdd = 0;
BOOLEAN g_SSDTOPEN = FALSE;
typedef NTSTATUS(*OriDeleteFileFun)(__in POBJECT_ATTRIBUTES ObjectAttributes);

[C] 纯文本查看 复制代码
NTSTATUS MyNtDeleteFile(__in POBJECT_ATTRIBUTES ObjectAttributes) {

	DbgBreakPoint();
	OriDeleteFileFun OriDeleteFile = (OriDeleteFileFun)g_NtDeleteFileAdd;
	return OriDeleteFile(ObjectAttributes);
}

VOID OpenSSDTHook() {
	//如果已经开启则退出
	if (g_SSDTOPEN) {
		return;
	}
	//记录SSDT表中102号位置的地址
	PULONG pSSDT_Base = KeServiceDescriptorTable.ServiceTableBase;
	g_NtDeleteFileAdd = (ULONG)pSSDT_Base[102];
	//替换
	__asm{
		push eax
		mov eax,cr0
		and eax,~0x10000
		mov cr0,eax
		pop eax
	}
	pSSDT_Base[102] = MyNtDeleteFile;
	__asm {
		push eax
		mov eax,cr0
		or eax,0x10000
		mov cr0,eax
		pop eax
	}
	g_SSDTOPEN = TRUE;
	DbgBreakPoint();
}


这些完成后,在pchunter中是这样的,如图
image.png
这是勾住了之后,我此时是双机调试状态,我在MyNtDeleteFile中下了一个断点,按照预期应该是删除文件就会在WINDBG中断下,可是并没有,特来向各位前辈请教

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 11:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表