首页
社区
课程
招聘
[求助]驱动如何调用内核未导出方法
发表于: 2016-3-17 16:11 4143

[求助]驱动如何调用内核未导出方法

2016-3-17 16:11
4143
x64系统在内核里面有个未导出方法:PsSuspendThread

我在驱动里面定位到这个函数,调用以后就蓝屏了,不知道是什么原因,希望各路大神不吝赐教,在下感激不尽
代码如下:

typedef NTSTATUS (__fastcall *pPsSuspendThread)(PETHREAD Thread, PULONG PreviousCount);
pPsSuspendThread MyPsSuspendThread = 0;
//找到PsSuspendThread的值,此方法与内核的偏移为0x2CA148
MyPsSuspendThread = (pPsSuspendThread)(g_KernelBaseAddress + 0x2CA148);
MyPsSuspendThread(Ethread, &PreviousCount);

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
__stdcall
2016-3-17 17:01
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
忘了说一句了,是x64下的环境
2016-3-17 17:01
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
调用方式没问题,估计就是地址错了吧 看看g_KernelBaseAddress 这个类型
2016-3-17 17:10
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
地址通过DbgPrint看了是没问题的
2016-3-17 17:25
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
WinDbg跟踪一下看看
2016-3-17 18:14
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
好的,我去看一下
2016-3-18 08:08
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
没碰到过 你找到PsSuspendThread内核地址  直接赋值给函数指针  不要玩加法试试
2016-3-18 15:53
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
经过Windbg调试以后,可以肯定的是我的驱动调用了NtSuspendThread的方法,但是调用后没什么实际效果,通过PCHunter查看该线程还是处于运行状态,而且调用多次以后蓝屏
2016-3-18 16:55
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
出错的消息

IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: fffff80003fb200c, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000008, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: fffff80003fb200c, address which referenced memory
2016-3-18 17:23
0
游客
登录 | 注册 方可回帖
返回