写在前面

  此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。

你如果是从中间插过来看的,请仔细阅读 羽夏看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系统内核——环境搭建的更多相关文章

  1. 羽夏看Win系统内核——简述

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  2. 羽夏看Win系统内核——保护模式篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  3. 羽夏看Win系统内核——驱动篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  4. 羽夏看Win系统内核——SourceInsight 配置 WRK

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  5. 羽夏看Win系统内核——系统调用篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  6. 羽夏看Win系统内核——进程线程篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  7. 羽夏看Win系统内核——句柄表篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  8. 羽夏看Win系统内核—— APC 篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  9. 羽夏看Win系统内核——同步篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

随机推荐

  1. Deepin Pwn环境的配置

    要学习Pwn  Pwn环境那是必不可少滴! 我是新手,我也弄了好久,这里把经验分享给大家!这里感谢I春秋的"知世"老师的脚本!虽然写的不是很完美.还得我自己动手修改!PS:http ...

  2. Access, Modify, Change Time of Linux File

    All these 3 time can be viewed by "stat " command. Access time is influenced by read opera ...

  3. Mysql聚合函数count(1) sum(1)结果返回0和NULL

    1.count(1) 返回为0 如果所查询的表或者where条件筛选后得到的结果集为空,则 count(1)返回为 0 如: select count(id) from test; select co ...

  4. JVM-初见

    目录 JVM的体系结构 类加载器 双亲委派机制 Native PC程序计数器 方法区(Method Area) 栈 堆 调优工具 常见JVM调优参数 常见垃圾回收算法 引用计数算法 复制算法 标记-清 ...

  5. .Net Core with 微服务 - 分布式事务 - TCC

    上一次我们讲解了分布式事务的 2PC.3PC .那么这次我们来理一下 TCC 事务.本次还是讲解 TCC 的原理跟 .NET 其实没有关系. TCC Try 准备阶段,尝试执行业务 Confirm 完 ...

  6. NOIP 模拟 $16\; \rm Lost My Music$

    题解 \(by\;zj\varphi\) 一道凸包的题 设 \(\rm dep_u\) 表示节点 \(u\) 的深度,那么原式就可化为 \(-\frac{c_v-c_u}{dep_v-dep_u}\) ...

  7. ASP.NET Core教程:在ASP.NET Core中使用HttPClient调用WebService

    一.前言 在以前的一篇文章中,曾经讲述过如何在ASP.NET Core中调用WebService.但是那种方式是通过静态引用的方式去调用的,如果是在生产环境中,肯定不能使用这种方式去调用,幸运的是微软 ...

  8. ASP.NET Core:中间件

    一.什么是中间件 我们都知道,任何的一个web框架都是把http请求封装成一个管道,每一次的请求都是经过管道的一系列操作,最终才会到达我们写的代码中.而中间件就是用于组成应用程序管道来处理请求和响应的 ...

  9. npm压缩js文件

    参考:https://blog.csdn.net/msy_msy/article/details/78261383 1.压缩单个js文件 cnpm install uglify-js -g 安装 1& ...

  10. PE文件结构(32/64差异)

    1 基本概念 下表描述了贯穿于本文中的一些概念: 名称 描述 地址 是"虚拟地址"而不是"物理地址".为什么不是"物理地址"呢?因为数据在内 ...