首页
社区
课程
招聘
[旧帖] [求助]关于读取OpenProcess基址导致系统蓝屏的问题 0.00雪花
发表于: 2015-5-8 22:33 1670

[旧帖] [求助]关于读取OpenProcess基址导致系统蓝屏的问题 0.00雪花

2015-5-8 22:33
1670
各位前辈,小弟在做NT驱动编程是遇到以下一个问题,请大家请教问题所在。

加以下代码前,驱动都是运行正常的,加以下代码后,用drivermonitor加载运行后就蓝屏了。
在头文件中加载以下代码:
typedef struct _ServiceDescriptorTable
{
        PVOID ServiceTableBase;                //SSDT的基地址
        PVOID ServieCouterTable;        //包含着SSDT中每个服务被调用次数的计数器,这个计数器由sysenter更新
        unsigned int NumberOfService; //由ServiceTableBase 描述的服务的数目
        PVOID ParamTableBase;               
}ServiceDescriptorTable, *PServiceDescriptorTable;

extern PServiceDescriptorTable KeServiceDescriptorTable;

在源文件中添加了以下代码:
#pragma PAGECODE
//VOID Disp_SSDT_NtOpenProcess_CurAddr()
//{
//        LONG SSDTBase;                //SSDT 的基地址
//        LONG *NtOpenProcessSSDTAddr;        //在SSDT中的地址
//        LONG NtOpenProcessAddr;                        //实际的地址
//
//        KdPrint(("Enter Dis_SSDT_NtOpenProcess_CurAddr\n"));
//
//        SSDTBase = (LONG)KeServiceDescriptorTable->ServiceTableBase;
//        KdPrint(("SSDTBASE:%x", SSDTBase));
//
//        NtOpenProcessSSDTAddr = (PLONG)(SSDTBase+0x7A*4);
//        KdPrint(("NtOpenProcessSSDTAddr:%x", NtOpenProcessSSDTAddr));
//
//        NtOpenProcessAddr = *NtOpenProcessSSDTAddr;
//        KdPrint(("NtOpenProcessAddr:%x", NtOpenProcessAddr));
//
//
//}
编译连接都是正常,但是加载后就蓝屏,请问是什么原因呢。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
指针无效的可能性较大,跟踪一下看看
2015-5-11 20:36
0
游客
登录 | 注册 方可回帖
返回
//