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

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

2021-6-19 03:22
10654


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

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

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


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

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