Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: tishion   发起时间: 2012-05-26 10:13 上午   回复: 2

Print Search
帖子排序:    
   2012-05-26, 10:13 上午
tishion 离线,最后访问时间: 2012/10/15 6:14:41 tishion

发帖数前500位
注册: 2012-03-07
发 贴: 2
系统调用的两种实现方式:中断方式和快速系统调用方式
Reply Quote

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

我推测通过修改内存

SharedUserData!SystemCallStub

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

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


IP 地址: 已记录   报告
   2012-05-31, 11:08 上午
tishion 离线,最后访问时间: 2012/10/15 6:14:41 tishion

发帖数前500位
注册: 2012-03-07
发 贴: 2
Re: 系统调用的两种实现方式:中断方式和快速系统调用方式
Reply Quote

好吧 没人回答我

自己又找到一点资料

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

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


IP 地址: 已记录   报告
   2012-06-05, 09:16 上午
ren970122 离线,最后访问时间: 2009/4/28 22:05:40 笨奔

发帖数前500位
注册: 2007-09-28
发 贴: 2
Big Smile [:D] Re: 系统调用的两种实现方式:中断方式和快速系统调用方式
Reply Quote
如何?win7下有何变化呢?
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 系统调用的两种实现方式:中断方式和快速系统调用方式

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.