羽夏看Win系统内核——环境搭建
写在前面
此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核——简述 ,方便学习本教程。
看此教程之前,问一个问题,你完成下载环境需要的文件了吗?
华丽的分割线
当你继续观看下面的内容时,说明你已按照我的要求下载好所需文件了,好那我们开始吧。
合并WinXP系统ISO文件
当按照我的要求全部下载,打开ReadMe.txt文件,结果如下:

然后双击运行合并.bat文件,确定好文件的完整性时,按键盘上的Y,运行一段时间后完成文件合并,结果如下:

合并WinXP系统ISO文件就这样完成了。
合并WinXP补丁安装包
当按照我的要求全部下载,打开ReadMe.txt文件,结果如下:

然后双击运行合并.bat文件,确定好文件的完整性时,按键盘上的Y,运行一段时间后完成文件合并,结果如下:

合并WinXP系统ISO文件就这样完成了。
微软应用商店安装WinDbg
在应用菜单找到Microsoft Store,在搜索栏搜索WinDbg,选中并安装即可。最终结果如下:

配置虚拟机
在选择文件夹的下拉列表时,如果列表没有自己想要的路径,请选择
其他项目,将会弹出文件夹选择窗体进行选择,确定即可。
新建虚拟机
从官网搜索后下载安装完毕运行后,软件如下所示:

点击新建按钮,给虚拟机起一个名字为WindowsXP(名字随便,不过最后带有的XP字符是为了软件自动帮我识别是什么系统的虚拟机),结果如下:

点击下一步,将会对虚拟机分配内存,请根据自己的内存情况分配。分配过少,虚拟机会有明显的卡顿;分配过多会导致真机卡顿甚至死机。我的电脑是8G内存,给虚拟机3G。

点击下一步,虚拟硬盘默认就行。

点击下一步,默认即可。

点击下一步,默认。动态分配即为虚拟机占用多少就多少,如果固定大小一次就占满位置给虚拟机用,建议动态分配以节省磁盘空间。

点击下一步,虚拟硬盘的大小根据自己硬盘的情况决定。我的硬盘有几百个GB,所以给50GB。

点击创建,至此空的可用虚拟机就此完成。
安装WinXP操作系统
接下来就是安装操作系统的步骤,创建好空的可用虚拟机如下图所示:

点击启动按钮,会弹出一个窗体,那个就是虚拟机窗体,由于此虚拟机没有预先安装系统,故会要求启动盘。

点击右边的图标按钮,弹出虚拟光盘选择,点击注册,找到合并好的WinXP系统ISO文件,确定,如下图所示:

点击选择,操作系统安装就开始了。

过一段时间,就会显示如下图界面,按回车继续。

许可条款,按F8继续。

安装系统位置,按回车继续。

格式化未分配磁盘,按回车继续。以后将进入正式的系统安装阶段。

正在安装操作系统,如下图所示:

过一段时间,就会弹出如下窗体显示,默认下一步。

自己起一个名字或者单位名,可空,下一步。

这一步是关键的一步,直接点击下一步,然后再信息框点否。我们以后将用工具进行激活。

再过一段,就会让设置如下图所示的计算机名和系统管理员密码等等,以后所有的操作都按默认处理继续,直至操作系统完成。

接下来是操作系统配置阶段,如下图所示,点击下一步。

下一步是设置自动更新,设置不启用,下一步。

下一步是设置网络,直接跳过。

下一步是是否激活Windows,选否,下一步。

下一步是设置姓名,可空,下一步。

到此基本操作系统就进入能够使用的阶段了,点完成继续。

过一段时间,就能够正式进入操作系统了。稍作设置,把我的电脑和网上邻居显示出来。这东西自己想弄就弄,个人习惯问题。

为了尽可能少的系统占用,我们对性能进行设置,建议如下图所示:

安装VirtualBox增强功能
最重要的一步就是安装增强功能,它会为我们提供虚拟机和真机的文件夹共享、文件拖拽复制,自动调整分辨率等功能。强烈建议您进行安装,不过得花费大量的时间,约一个小时,请耐心等待。
首先我们在虚拟机窗体菜单点击设备-安装增强功能,如下图所示:

打开我的电脑,双击软盘进行安装(也可能自动启动安装程序),如下图所示:

默认安装下一步,开始安装,当安装的如下图进度时,就会停在这里,不要以为程序假死了,它仍在正常运行,耐心等待。

等了很长时间,终于弹出一个框,如下图所示:

点击仍然继续按钮,程序继续安装,后续将会弹出相同的弹窗,如法炮制即可,每一次弹窗之间的间隔很长,请耐心等待。当如下图所示时,安装完毕,直接结束,电脑将自动重启。重启后所有增强功能可用。

设置共享文件夹
虚拟机还有设置分享文件夹功能,这样可以方便频繁的访问真机上的文件夹里的内容,建议设置,在菜单选中设备-共享文件夹-共享文件夹,如下图所示:

然后点击右面的带有加号的文件夹图标,选择好路径名称,设置只读分配(阻止虚拟机感染病毒木马影响实体机的一条途径)、自动挂载(接触过Linux你就会明白)、固定分配,确定,如下图所示。

这样就完成了共享文件夹的设置。
WinXP虚拟机安装补丁
如果不想安装该补丁的,请忽略此小节,继续下一节。
安装完操作系统后第一件事情就是打补丁,否则后续的调试环境配置和激活都会影响补丁的正常安装。既然增强工具都已安装完成,直接通过共享文件夹或者拖拽的方式复制进入虚拟机。然后运行,如下图所示:

显示如下图界面时,点击下一步。

点击我同意,然后下一步。

补丁开始安装,等待一段时间。

安装完毕后如下图所示,点击完成,补丁重启虚拟机后生效。

激活Windows
在激活Windows之前,如果想安装补丁一定要在这之前安装,否则会报错无法安装。将激活工具复制到虚拟机中,如下图所示:

上面说明要安全模式,其实不必,因为这里没有安装任何杀软,点击安装,结果如下:

最后会弹出关闭计算机窗体,点击重启重新进入操作系统即可永久生效。

安装符号文件
下面我们来安装符号安装包:

选择好安放符号的路径(一定要记住),点击确定,如果有UAC弹窗允许。

接下来就进入复制符号文件阶段,如下图所示:

当显示如下图所示结果时,证明安装完毕。

配置调试环境
虚拟机自身设置
此操作需要在关闭虚拟机的状态下设置,按照如下图所示,请用端口,按照对应设置即可,端口号和路径/地址不必和我的一样,但必须做好记录,和WinDbg配置一致。

虚拟机内部设置
为了方便设置,文件夹选项中用红框框出的区域请按照如下图配置:

配置好后,找到C盘,找到boot.ini,它就是系统配置文件。打开,把最后一行复制一行附到后面。引号里面的就是启动选择操作系统显示的名称,后面将会以图片展示。

然后Win+R启动运行,输入msconfig,回车启动该程序。

然后按照下图指示完成操作,将结果如下图所示,高级选项里面的值可以和我不完全一样,但必须和虚拟机自身设置和WinDbg配置保持一致。

改完后确定,会弹出下面提示,重新启动即可生效。

WinDbg配置
接下来配置WinDbg,本人只提供新版配置教程,老版的自行搜索进行配置。
打开WinDbg的设置,找到Debugging settings,按照下图修格式修改调试符号位置(Default symbol path)。第一行填写的是我XP的符号的路径,第二行你就不必管了,想要了解的自行科普。

点击左上角的文件,点击Attach to kernel,按下面输入(注意红框部分,不要照抄,如果前面和我配置的不一样,一定要按照之前自己配置的配置,一样的话直接按照我的填即可)。

然后开启配置好的虚拟机,如果原来开启则重启。

当显示如上图所示时,切到WinDbg,点击确认,如果如下图结果所示,证明WinDbg找到通信管道,等待连接。

切到虚拟机,选中调试模式回车,如果调试器如下图所示,证明WinDbg成功与虚拟机建立了通信关系且正常使用调试符号。

当虚拟机第一次开始调试模式,进入系统后会显示下图弹窗,选中不再显示确定,以后将不会再显示此提示。

到此基本的双机调试的环境已搭建成功了,你成功了吗?
其余软件的安装
其余软件的安装我就不再详细说明了,玩过电脑的应该都会安装软件。尽量把我提到的软件都安装上,这样对于学习后面的教程具有更大的帮助。
本篇说明
- 如果是初学者,最好按照本篇教程的说明顺序来,否则容易会导致配置失败。
- 关于VirtualBox或者其他软件安装的问题,不要问我。
- 如果在安装WinXP补丁前激活了系统导致补丁安装不上的,还想安装补丁,请重新用ISO文件修复操作系统,具体自行操作。
- 本教程提供的虚拟机示例展示本人不会再使用,并不是配置的不对,因为我有一个配置好的虚拟机环境,里面比较全面,以后系统内核讲解都会用到它。
- 我不是你请的老师,提出琐碎且不涉及该教程的问题概不回答。
下一篇
羽夏看Win系统内核——保护模式篇
羽夏看Win系统内核——环境搭建的更多相关文章
- 羽夏看Win系统内核——简述
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——保护模式篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——驱动篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——SourceInsight 配置 WRK
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——系统调用篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——进程线程篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——句柄表篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核—— APC 篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——同步篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
随机推荐
- 程序员被老板要求两个月做个APP,要不比京东差,网友:做一个快捷方式,直接链到京东
隔行如隔山,这句话说得一点都没错.做一个程序员,很多人都会羡慕,也有很多人会望而却步. 作为一个外行人,你别看程序员每天坐在电脑前敲敲键盘打打代码,以为很简单,其实啊也只有程序员自己明白,任何一个看似 ...
- HTML5(十一)——WebSocket 基础教程
一.为什么要学 WebSocket? websocket 是 HTML5 提供的一种长链接双向通讯协议,使得客户端和服务器之间的数据交换更简单,允许服务端主动向客户端推送数据,并且客户端与服务端只需连 ...
- MySQL-15-主从复制
企业高可用性标准 1 全年无故障率(非计划内故障停机) 99.9% ----> 0.001*365*24*60=525.6 min 99.99% ----> 0.0001*365*24*6 ...
- 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU
摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...
- 【Vulnhub】 DC-4 靶机
Vulnhub DC-4 一.环境搭建 下载链接:https://www.vulnhub.com/entry/dc-4,313/ 解压后用VMware打开,导入虚拟机 网卡配置看个人习惯,我喜欢NAT ...
- JunAMS v1.2.1.20190403代码审计笔记
前言 CNVD-2020-24741 过程 JunAMS是以ThinkPHP为框架的开源内容管理系统,本地搭建受影响版本JunAMS v1.2.1.20190403 前台没有上传功能,进入后台.发现在 ...
- 使用docker-compose部署Sentry(附Sentry数据清理)
Ubuntu下Sentry部署 Sentry作为一款常见以及使用人数较多的监控服务,在接口监控.错误捕捉.错误报警等方面是非常不错的,在此之前我也用过Prometheus监控,各有各的好处,有兴趣的同 ...
- RHEL 7 “There are no enabled repos” 的解决方法
RHEL 7 "There are no enabled repos" 的解决方法 [root@system1 Desktop]# yum install squidLoaded ...
- spring-data-redis 连接泄漏,我 TM 人傻了
本系列是 我TM人傻了 系列第四期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了 获取异 ...
- 回调与Promise
Promise 对象就是用于表示一个异步操作的最终状态(成功或失败).它的流程就是在什么状态下需要执行什么样的操作. resolve简单理解就是一步操作执行成功后的回调函数 then是Promise对 ...