Re: 系统调用的两种实现方式:中断方式和快速系统调用方式

Windows内核调试

系统调用的两种实现方式:中断方式和快速系统调用方式


tishion 2012-05-26, 10:13 上午

XP以后的系统都是两种方式的实现并存,一般现在的CPU都支持快速系统调用的。所以现在的系统一般都是通过快速系统调用方式,但是中断方式并没有被抛弃,仍然存在系统中,Windows有没有设置一个开关,可以选择使用哪种方式呢???

我推测通过修改内存

SharedUserData!SystemCallStub

这个内存中保存的函数地址就可以修改,把这个值修改为ntdll!KiIntSystemCall的值就应该可以修改系统调用的方式为中断方式了。

但是Windows有没有提供一个开关呢,不用这么暴力的方式来实现系统调用方式的改变????

Re: 系统调用的两种实现方式:中断方式和快速系统调用方式


tishion 2012-05-31, 11:08 上午

好吧 没人回答我

自己又找到一点资料

系统在初始化的时候根据CPU是否支持快速系统调用而使该指针指向KiIntSystemCall()或者KiFastSystemCall();

所以我的想法应该是完全正确的。下面准备自己测试,直接修改SharedUserData!SystemCallStub的值来修改系统调用的完成方式。

Re: 系统调用的两种实现方式:中断方式和快速系统调用方式


笨奔 2012-06-05, 09:16 上午
如何?win7下有何变化呢?

Powered by Community Server Powered by CnForums.Net