<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SaiCT的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/saict</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; saict]]></copyright><item><title><![CDATA[更新到了Vista SP2]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3959253</link><guid>https://blog.youkuaiyun.com/saict/article/details/3959253</guid><author>saict</author><pubDate>Thu, 05 Mar 2009 12:13:00 +0800</pubDate><description><![CDATA[由于之前给别人装Vista的SP1服务包，遇到了种种的不测，所以对于Microsoft的这个Service Pack的安装一直心有余悸。但是今天人品爆发，通过自动更新，竟然一下就成功更新了Vista Service Pack 2，不过是RC版的。但是微软以“重要”标记了更新，还是打上吧。]]></description><category></category></item><item><title><![CDATA[跟踪NtReadFile系统服务的执行过程]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3687081</link><guid>https://blog.youkuaiyun.com/saict/article/details/3687081</guid><author>saict</author><pubDate>Fri, 02 Jan 2009 22:29:00 +0800</pubDate><description><![CDATA[由于马上就要期末考试了，操作系统这么课，关于设备这一块我还是一片狼藉，很是杂乱。由于老师之前说过不懂驱动就不可能懂设备，所以我就找了本驱动开发的书来看。还是有些收获的，至少根据书中的描述，我大致了解了处理一个IO请求的最简单最简单流程。大概流程是是Win32API——Native API——系统调用陷入——内核内部例程创建IRP——传递给相应驱动程序。至于驱动程序执行完之后的是我就不甚了解]]></description><category></category></item><item><title><![CDATA[深入浅析Windows内核——VAD篇]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3572691</link><guid>https://blog.youkuaiyun.com/saict/article/details/3572691</guid><author>saict</author><pubDate>Sun, 21 Dec 2008 13:33:00 +0800</pubDate><description><![CDATA[深入浅析Windows内核——VAD篇为何叫深入浅析呢？所谓深入指的是我们将要面对的是微软公开的Windows源码，适用于Windows XP/Windows Server 2003。所谓浅析当然是指本人水平有限，这能望文生义，做一做表面文章。大家都知道，在x86的平台上Windows操作系统为每个进程描述了一个完整的4G的地址空间，这4G空间由低位2G的用户地址空间和高位2G的系]]></description><category></category></item><item><title><![CDATA[初窥Windows内核——学习Windows Research Kernel手记（四）]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3564815</link><guid>https://blog.youkuaiyun.com/saict/article/details/3564815</guid><author>saict</author><pubDate>Sat, 20 Dec 2008 16:32:00 +0800</pubDate><description><![CDATA[STEP3——记录/恢复用户栈    有了前面的基础，要完成用户栈的记录也不是难事了。基本思路就是想办法找到用户栈的栈底地址，再找到栈顶地址，计算出栈的大小，然后调用函数PspRecordOrCopyData即可。    栈顶的地址是由栈顶指针esp寄存器保存的。前面已经说过，在系统调用时，使用的是内核栈，所以当前的esp寄存器并不是我们所期望的。那么这个栈顶地址应该去哪儿找呢]]></description><category></category></item><item><title><![CDATA[初窥Windows内核——学习Windows Research Kernel手记（三）]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3563955</link><guid>https://blog.youkuaiyun.com/saict/article/details/3563955</guid><author>saict</author><pubDate>Sat, 20 Dec 2008 14:43:00 +0800</pubDate><description><![CDATA[STEP2——记录/恢复线程运行上下文    首先说明一下什么是“陷阱帧”。当一个在用户模式执行的线程请求一个系统调用，在x86平台上，也就是一条INT指令，或者sysenter指令，随即就会通过一个软件中断陷入的到内核。这时CPU的工作状态由之前的用户态切换到内核态（也就是驱动开发中常说的ring3到ring0）。在这个切换过程中，系统要做一些前期的工作。因为系统服务例程是占用调用者]]></description><category></category></item><item><title><![CDATA[初窥Windows内核——学习Windows Research Kernel手记（二）]]></title><link>https://blog.youkuaiyun.com/saict/article/details/3557595</link><guid>https://blog.youkuaiyun.com/saict/article/details/3557595</guid><author>saict</author><pubDate>Fri, 19 Dec 2008 13:18:00 +0800</pubDate><description><![CDATA[STEP 1——编写一个最简单的系统调用最简单的系统调用当然是调了它之后什么都不干了，但是我还是决定让它干一件很是经典的事情，想调试器输出一条语句“Hello World！”。几乎每种编程技术的开始都有由一个名为“HelloWorld”的程序开始，我不想破坏这一传统。下面我们就来一步步完成这个系统调用。完成这个系统掉用共需要修改2个内核文件，并要编写一个用户程序来调用这个系统调用。首先]]></description><category></category></item><item><title><![CDATA[初窥Windows内核——学习Windows Research Kernel手记（一）]]></title><link>https://blog.youkuaiyun.com/SaiCT/article/details/3557103</link><guid>https://blog.youkuaiyun.com/SaiCT/article/details/3557103</guid><author>SaiCT</author><pubDate>Fri, 19 Dec 2008 11:59:00 +0800</pubDate><description><![CDATA[ 小序 当初只是抱着试一试的想法去找老师的，结果就这么开始了。从一开始拿到Windows Research Kernel（以后简称WRK）我就知道这些材料，包括源码、文档、实例范例等等，都是十分难得的。使用是有限制的，只能用于教学研究，微软对于这些是有版权的，我们都要遵循其协议的要求种种。其实老师也说过，他自己对这个版权上的事也不是很清楚。那我当然就更不清楚了。大概知道不能用于商业，最]]></description><category></category></item></channel></rss>