首页
社区
课程
招聘
[求助]内核apc插到32位进程无法执行
2021-6-19 03:22 9552

[求助]内核apc插到32位进程无法执行

2021-6-19 03:22
9552


64进程测试没问题,32进程KerneRoutine都不执行,但是r3回调地址NULL后就能执行KerneRoutine

(地址*(-4)) 这样子转换过了的

论坛翻遍了别人的代码,都一样的参数,我测试就是不行....


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

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 14
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
妮可 2021-6-19 07:44
2
0
知道是alertable=0的问题了.按照以前@库尔说的方法.同时插2条APC,先插用户模式,再插内核模式
内核模式回调里KeTestAlertThread( UserMode),确实可以执行了,但是秒蓝,只能看到windbg输出,第二条Apc改成用户模式也是蓝屏,蓝屏信息是DRIVER IRQL NOT LESS OR EQUAL,实在不知道怎么解决了
只能曲线救国,枚举线程的时候判断state和alertable,但是实在是不想用硬编码
雪    币: 81
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_aopnnvxb 2021-6-20 16:08
3
0
mark 我APC也是出这个蓝屏
雪    币: 14
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
妮可 2021-6-20 23:16
4
0
mb_aopnnvxb mark 我APC也是出这个蓝屏
直接找有条件的线程插吧,然后插2条apc就可以立刻执行了
雪    币: 2672
活跃值: (3307)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Mr.hack 2021-8-1 12:46
5
0
大概率是堆栈没处理好的问题,要知道kernelruntine,normalruntine这两个成员所指的函数都不是你自己调用的,而是KiDeliverApc调用的,参数个数,有没有返回值都不是你能控制的
雪    币: 20
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sqdwr 2021-8-2 11:22
6
0
KerneRoutine都不执行可能是因为你插入的线程没有执行UserMode APC的条件,如果你把NormalRoutine设置为NULL就可以执行了是因为NormalRoutine是NULL的情况下,APC默认是特殊的KernelMode APC所以他一定有执行的机会。UserMode的需要触发条件。
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_punpkihu 2021-9-30 15:25
7
0
求交流 能否加个好友 恰个Q或者V也行
游客
登录 | 注册 方可回帖
返回