吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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

[C] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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, 2025-7-23 11:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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