初窥Windows内核——学习Windows Research Kernel手记(一)
来源:互联网 发布:淘宝知名情趣内衣模特 编辑:程序博客网 时间:2024/06/17 00:18
小序
当初只是抱着试一试的想法去找老师的,结果就这么开始了。从一开始拿到Windows Research Kernel(以后简称WRK)我就知道这些材料,包括源码、文档、实例范例等等,都是十分难得的。使用是有限制的,只能用于教学研究,微软对于这些是有版权的,我们都要遵循其协议的要求种种。其实老师也说过,他自己对这个版权上的事也不是很清楚。那我当然就更不清楚了。大概知道不能用于商业,最终解释权归微软所有。
在现在这个知识爆炸的时代,尤其是计算机知识泛滥的时代,真要说想学些东西,但是找不到相关资料的真是没有几个。那么Windows内核原理方面的就算是一个了。一切都是由于Windows是一个不开源的操作系统。一直以来对他的学习只能通过微软给的开发文档,或者爱好者们通过反汇编,在那晦涩的汇编代码中揣测Windows的真正面貌。而今天,我有幸得到了这个机会,真是感觉幸运之至啊。也从此决心要学出点东西来,不然都浪费了这么好的资源了。
概要
这一阶段的探索目标是编写一个系统调用,将进程的运行时状态保存在文件中,必要的时候可以还原回去并继续执行。
具体到我,我的任务就是重点记录和还原进程执行时的寄存器状态、用户栈、用户堆、数据段、以及页表的内容。
STEP 0——搭建一个实验平台
一切都要从最简单的做起。首先是搭建实验的平台。我们的实验平台是这样的,在主机(本人是Windows Vista操作系统)修改编译WRK内核,在虚拟机Virtual PC 2007中的WRK Windows Server 2003 SP1系统远程调试内核。调试工具是WinDbg。
搭建平台也不是那么一帆风顺的,也是费了一番周折才装好的。我只能感叹万事开头难啊。安装好的WRK有好多文件夹,其中base/ntos文件夹最为重要,因为里面就是WRK的源码了,编译也就是编译这个文件夹。微软的东西做的就是力求方便,这个也不例外。整个编译过程就一条命令,而且自动判断那个文件修改过,仅仅编译这部分。调试的时候就进到虚拟机,通过共享主机的文件的方式把编译出来的内核映像文件wrkx86.exe替换掉虚拟机中windows/system32中的同名文件,以调试模式重启就好了,这样就可以进行调试了。对于WinDbg的使用,我也只是停留在初级阶段,刚开始只会用DbgPrint这一个,后来通过上网学习才回了点命令和跟踪调试的技术,但是依然很不熟练。
待续。。。
- 初窥Windows内核——学习Windows Research Kernel手记(一)
- 初窥Windows内核——学习Windows Research Kernel手记(二)
- 初窥Windows内核——学习Windows Research Kernel手记(三)
- 初窥Windows内核——学习Windows Research Kernel手记(四)
- Windows Research Kernel
- Windows Research Kernel简介
- (Windows Workflow Foundation)学习手记(一)
- 学习windows内核一
- ARK---Kernel Star 学习windows内核
- Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- Windows内核学习笔记(一)
- A Catalog of Local Windows Kernel-mode Backdoor Techniques—WIndows内核级后门技术
- Kilxy的WF(Windows Workflow Foundation)学习手记一
- 转载:Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- 转载:Kilxy的WF(Windows Workflow Foundation)学习手记(一)
- 《windows核心编程》学习笔记(一)内核对象
- 《windows核心编程》学习笔记(一)内核对象
- FW:《windows核心编程》学习笔记(一)内核对象
- Windows调试工具入门1—Windows调试工具介绍
- Linux 设备文件
- bs与cs
- 遥感图的一些常识
- 世界顶级精英们的人生哲学![转]
- 初窥Windows内核——学习Windows Research Kernel手记(一)
- 布局未来收购同行-金融危机下的IDC感想
- Linux设备文件概述
- 我的编程生活
- TCP/IP 协议的结构与运行原理[图]
- the new thing in webkit3
- Windows调试工具入门2—基本的调试器配置
- 论JSP数据库连接池的必要性
- AspNetPager+GridView+Access分页示例