内核APC&用户APC详解
内核APC
线程切换
SwapContext 判断是否有内核APC
KiSwapThread
KiDeliverApc 执行内核APC函数
定位到SwapContext
函数,然后查看KernelApcPending
的值是否为空,不为空则跳转,这里只是进行判断,我们往上跟
然后回到KiSwapContext
再往上走得到KiSwapThread
这里判断后进行跳转
然后调用KiDeliverApc
系统调用、中断或者异常
当要执行用户APC之前,先要执行内核APC,这里找到KiServiceExit
,有一个比较检验UserApcPending
的值是否有APC请求
然后调用KiDeliverApc
内核层APC执行
KiDeliverApc
继续往里面跟,判断内核APC的链表是否为空,若不为空则跳转
D31imiter: 原文作者:Drunkmars 原文链接:http://drunkmars.top/2022/03/22/%E5%86%85%E6%A0%B8%E9%87%8D%E8%BD%BD/ 发表日期:三月 22日 2022, 12:00:00 凌晨 更新日期:March 22nd 2022, 12:44:36 pm 版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可
lanwah: 0环,3环是啥意思?
weixin_51613478: 请问从哪里下载,辛苦了!
采云拓月: 不明觉厉,好奇微软为啥要引入dll,带来便利的同时,太不安全了,加上远程,hook什么的
易木~_~: 师傅能给下检测驱动demo吗