Windows XP System Services(http://webcrazy.yeah.net)

xp系统双驱动集成VIP软件2014最新版下载 2014年最简单易用的XP SP3 ghost系统,不用刻盘也能做系统的系统。极具特色的,稳定快速。 双驱动系统,确保你的电脑驱动完全可以安装。 立即下载
AI摘要

本文对比分析了Windows XP与Windows 2000的系统调用。指出从组织上看变化不大,但win32k.sys导出的系统调用表基地址有差异,调度方式中指令由int 2eh改为sysenter以提升性能。还对比了系统服务数量,XP有所扩充,并整理了系统调用列表。

 Windows XP System Services
              WebCrazy(http://webcrazy.yeah.net)

    在《再谈Windows NT/2000内部数据结构》一文中我曾经介绍过Windows 2000 System Call。如今Windows XP正式版已经出来了。从总的System Call的组织上看是没有多大的改变。System Call调度表仍是由ntoskrnl.exe导出的全局变量KeServiceDescriptorTable指定。我在分析了Windows XP Professional Build 2600(我手头上只有这个盘),发现与Windows 2000 Server的区别是win32k.sys导出的System Call表的基地址由KeServiceDescriptorTable-30h处指定,而不是2000中的KeServiceDescriptorTable-0ch处。关于System Call参数表等,目前仍没有发现有其他差异。

    在2001年2月25日的学习心得中我就指出Whistler Beta 1(Windows XP的beta)的System Call调度方式与Windows 2000就有较大的区别。Windows XP沿袭了Beta 1时的做法。我们从NtOpenKey出发来看看System Call调度。

    kd> u ntdll!NtOpenKey
    ntdll!ZwOpenKey:
    77f7eb23 b877000000 mov eax,0x77
    77f7eb28 ba0003fe7f mov edx,0x7ffe0300
    77f7eb2d ffd2 call edx
    77f7eb2f c20c00 ret 0xc

    其中0x77是NtOpenKey在Windows XP中的System Call ID.从ret 0xc指令我们很容易的知道NtOpenKey是有三个参数的。继续跟踪7ffe0300:

    kd> u 7ffe0300 l 20
    SharedUserData!SystemCallStub:
    7ffe0300 8bd4 mov edx,esp
    7ffe0302 0f34 sysenter
    7ffe0304 c3 ret
    7ffe0305 9c pushfd
    7ffe0306 810c2400010000 or dword ptr [esp],0x100
    7ffe030d 9d popfd
    7ffe030e c3 ret
    7ffe030f 8bd4 mov edx,esp
    7ffe0311 0f05 syscall
    7ffe0313 c3 ret

    从这部分代码中可以看出传入ntoskrnl!KiSystemService时eax与edx的值与Windows 2000一样,仍分别为System Call ID与参数地址。唯一区别的是由原来的int 2eh指令改为sysenter指令。我查过Intel文档这个指令是PII引入的。其执行时间周期比int 2eh来得短。这也是Windows XP从性能上考虑做的改进。但这导致我的Strace之类直接该2eh IDT的应用小工具失效。关于AMD的syscall请查阅AMD文档。从上面的汇编代码也可以看出这两指令的机器码也是不一样的。

    在《Windows 2000 System Services列表》一文中,我曾指出“Windows 2000 Server Build 2195 SP0 中文版共从ntoskrnl.exe(x86单处理器版本)中导出248个System Services,而从win2k.sys中导出639个System Services”。Windows XP要扩充其操作系统功能,免不了要对System Service的扩充。Windows XP Professional Build 2600共从ntoskrnl.exe(x86单处理器版本)中导出284个System Services,而从win2k.sys中导出666个System Services。共增加了63个。为了对Windows XP Kernel有一个整体的概念。我使用Softice与windbg整理了这些System Call。同样可以参考的是各System Call对应的各内核例程名。我还针对Windows 2000 Server SP0 Build 2195对增加或有过修改的System Call做了标记。应该指出的是这份列表并不是Microsoft的文档。我也只是针对我使用的版本做的分析。从新增加的例程我们也可以隐约的看到Windows XP的改进。列表中也只列出System Service例程名,对于完整的ntoskrnl.exe与win32k.sys的Symbol大家可使用windbg进行学习。我也将这部分做成Excel文件,由于空间的限制,我就没有上传这部分了。需要的朋友请直接联系我(tsu00@263.net)。


    附: Windows XP Build 2600 System Services vs Windows 2000 Build 2195 System Services(文档比较大,大家看时请耐心等待)。
xp1204带新人学j2ee的文档资料 序言<br/>第一部分,1环境搭建.doc<br/>第一部分 ,2环境测试.doc<br/>第二部分,1,应用struts框架.doc<br/>第二部分,2,完成应用struts框架的登陆功能模块.doc<br/>第二部分,3,完成应用struts框架的登陆功能模块.doc<br/>第三部分,进一步完善struts的登陆功能模块.doc<br/>第四部分,程序的普通结构.doc<br/>第四部分补充和测试.doc<br/>第五部分,如何开始我们的OA项目.doc<br/>第六部分,分析我们的OA项目.doc<br/>第七部分,分析我们该如何做这个OA系统.doc<br/>第八部分,概要设计,分析员工角色属性.doc<br/>第九部分,概要设计,分析员工角色的方法.doc<br/>第十部分,概要设计,分析工作任务的属性和方法.doc<br/>第十一部分,系统本身的属性和方法.doc<br/>第十二部分,建立数据库模型.doc<br/>第十三部分,用rose自动生成代码和数据库.doc<br/>第十四部分,安装数据库并建库建表.doc<br/>第十五部分,详细设计.doc<br/>第十六部分,实现.doc<br/>第十七部分,1.0版本交付讨论,需求变更.doc<br/>第十八部分,分析新的需求.doc<br/>第十九部分,实现新的需求.doc<br/>第二0部分,测试,完成系统.doc 立即下载

相关推荐

xp1204带新人学j2ee,序

后面两三天内陆续上传所有文档,

最受欢迎的网站(分类,2014年10月)

The Top 10 Best Flash Websites The Top 10 Best Html5 Websites The Top 15 Most Popular Blogs The Top 15 Business Sites The Top 15 Most Popular Car Sites The Most Popular Coupon Sites The Top 15 D

phoenixtree7的专栏 5587

cunboard_xp.rar_1042xp_1042核工厂xp_THIS FORUM CONTAINS_xp down论坛_x

a.本论坛包含了,常规论坛的基本功能,并增加了,论坛发帖是否需要审核的功能。 b.本论坛增加了论坛社区首页功能 c.论坛增加发贴附带投票功能 d.在线头像管理

1204

1204

北极企鹅 1万+

避免踩坑!WIN11 22H2更新后共享打印机失效的终极解决方案

本文详细解析了WIN11 22H2更新后共享打印机失效的问题,特别是常见的0x00000709错误代码。通过系统更新机制分析、错误代码解读,提供从基础到高级的完整解决方案,包括注册表修复、组策略调整和驱动兼容性处理,帮助用户彻底解决打印机共享问题并预防未来故障。

pp12345的博客 530

【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(3):Agent请求和响应

CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。这篇文章剖析一下 CangjieMagic 框架中的 AgentRequest 和 AgentResponse。

九丘教育官方博客 1475

Oracle安装介质及补丁集下载地址

Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk1.zip http://download.oracle.com/otn/nt/oracle

冷月宫主的专栏 991

QComboBox设置最大显示数量多余的用滑动条,以及QComboBox::setMaxVisibleItems()不起作用的问题

QComoboBox是Qt封装的一个选择框的东西,但是我在使用过程中有一点感觉很不好,如图: 不论你往里面添加多少个它都会给你显示全部,甚至给你铺满全屏,后来看了官方文档发现有个setMaxVisibleItems()的方法,我欣喜若狂啊,终于特么的能解决了,但是,很遗憾,不知为啥,我设置上之后并没有起作用,依然会显示全部,后来搜了百度发现有个人是这样解决的 QComboBox *box = ne...

Aboveground的博客 4918

xp1204-xp1204_XP电动玩具

xp1204-xp1204For those of you still running XP you might be looking for ways to improve the XP experience. One of the better ways to add unique features to the OS is installing Power Toys. These are...

culul01313的博客 1万+

【头歌实训:逆置顺序表】

根据提示,在右侧编辑器补充函数rev的代码,使用顺序表L的空间就地逆置L。},要求时间复杂度为O(n),空间复杂度为O(1)。第一行为顺序表逆置之前的元素。每个数据后一个空格。第二行为顺序表逆置之后的元素。每个数据后一个空格。本关任务:设计一个算法,将一个顺序表L的元素{a。第一行为顺序表中元素个数n。第二行为空格隔开的n个整数。开始你的任务吧,祝你成功!

guang_Lee的博客 997

【深度学习新浪潮】什么是system 1和system 2?

System 1(快速生成)指大模型直接基于输入生成响应,无需显式中间推理步骤。例如,GPT-4等模型在默认状态下通过Transformer直接输出结果,擅长快速回答简单问题或生成连贯文本,但在复杂逻辑任务中可能出错。这类模型的内部计算以向量形式隐式进行,难以处理符号推理等需要离散决策的任务。System 2(慢速推理)指模型通过生成中间token(如思维链、分步推导)或多次调用LLM进行复杂推理。

专注:太空算力、AI infra、异构调度、大模型成本工程 924

太平洋电脑城 GHOST XP SP3 快速装机版 V9.8

太平洋电脑城 GHOST XP SP3 快速装机版 V9.8   软件介绍 太平洋电脑城 GHOST XP SP3 快速装机版 V9.8 ================================================ 太平洋电脑城 GHOST XP SP3快速装机版V9.8 == ========================...

心语家园 - www.xinyucn.cc 1082

【WRF实操】四层嵌套网格设计-以粤港澳大湾区GBA为例

四层嵌套网格设计-以粤港澳大湾区GBA为例

WW、forever的博客 819

【系统】WinXP/Win7x86/Win7x64 地址汇总 2014.7

x86 = 32位 , x64 = 64位 ,这个是常识,不要再问了。 32/64位的明显差距在内存,32位系统不支持4G以上内存,内存容量如果超过4G,建议安装64位Win7。

shunnegong5的专栏 1万+

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3105

基于加速科技ST2500的SN74HC00N芯片测试计划

实际上随着工艺的进步,器件内部和引脚间的绝缘氧化膜越来越薄,导致漏电流发生的概率更大,另外制造过程中的工艺缺陷导致的桥接,异物或封装过程中造成的芯片划伤、引裂,都会造成IC的漏电流偏大,有部分产品可能会表现出漏电流偏大,但功能正常,此类产品具有潜在的可靠性问题,漏电流测试的目的就是把具有此类缺陷的产品筛选出来,避免其流到最终产品造成更大的损失。漏电流的测试方法相对简单,就是根据产品手册或测试规范对被测引脚施加额定的电压,然后测量其输入或流出的电流是否符合相应的设计规范。74HC00引脚功能如表所示。

weixin_68288412的博客 1431

1024

1024攒标

通哈膨胀哈哈哈 的博客 5521

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

春暖花开

虽然还没有春暖花开,但是明朗的天气让人心情很好,温暖的天儿春味儿已经十足。终于到周末了,被禁锢了7天的亲们该拉出去放风了!!!

caibudao0 439

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

1024快乐

各位程序员大大们,1024快乐噢!~

localhost01 9450

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

详解二叉树之堆

二叉树和堆的相关概念和结构的介绍和学习到这里就结束啦~但是数据结构的学习之路远没有结束哈!这是非线性结构的开端,后面还有大力输出学习非线性结构。但是在这里,希望大家能够将前面的树的基础概念以及之前的线性结构知识进行回顾复习,使整个纯C数据结构学习是连贯的,这样更加利于我们的学习和理解以及继续拓展。。学习数据结构当然离不开大量操作练习,因此在这里🌷给爱学习的小伙伴们推荐个学习、刷题的网站——牛客网,其中面试题应有尽有,真的能够给你带来很好的学习体验。👇👇👇爱学习的亲们!🎉🎉🎉请点击我开始注册!...

forever的博客 4293

SSDT Hook

系统服务描述符表这里以Windows XP SP3为例第一个参数指向的是内核函数存储的首地址第三个参数11c(284)代表的是SSDT表有多少个内核函数第四个参数指向的是一个地址,这个地址表示的内核函数相对应的参数个数比如0x2c = 44,44/4 = 11个参数。

m0_68259687的博客 7076
上一篇: Windows NT/2000/XP下不用驱动的Ring0代码实现(http://webcrazy.yeah.net)
下一篇: 浅析.NET Framework对PE文件格式的扩展(http://webcrazy.yeah.net)
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值