-
-
[求助]《加密与解密(第4版)》【 p537 】插入DPC貌似也不保证inline hook线程安全?
-
发表于: 2019-4-22 17:34 3299
-
《加密与解密(第4版)》【 p537 】插入DPC貌似也不保证inline hook线程安全?
书中代码:
for (i = 0; i < KeNumberProcessors; i++, *temp_pkdpc++) { if (i != u_currentCPU) { KeInitializeDpc(temp_pkdpc, RaiseCPUIrqlAndWait, NULL); KeSetTargetProcessorDpc(temp_pkdpc, i); KeInsertQueueDpc(temp_pkdpc, NULL, NULL); } }
如:CPU0安装inline hook。这时 CPU 1线程调用目标函数,第一条指令 ,eip变为0x77d507ec 。当CPU0 向 CPU1 插入DPC, CPU1 线程上下文切换了运行DPC。 CPU0安装inline hook 安装完毕, CPU1继续执行目标函数调用 0x77d507ec,还会是调用“or byte ptr ds:[ebx-78],ch”,会导致程序崩溃啊?
这种方法只能说减少发生的概率,不能彻底解决问题啊?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-4-22 17:47
被whoyousee编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: