Windows操作系统学习之——启动引导过程调试

Windows操作系统学习之——启动引导过程调试

ID:40756046

大小:303.00 KB

页数:18页

时间:2019-08-07

Windows操作系统学习之——启动引导过程调试_第1页
Windows操作系统学习之——启动引导过程调试_第2页
Windows操作系统学习之——启动引导过程调试_第3页
Windows操作系统学习之——启动引导过程调试_第4页
Windows操作系统学习之——启动引导过程调试_第5页
资源描述:

《Windows操作系统学习之——启动引导过程调试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Windows操作系统学习之——启动引导过程调试 关于Windows的启动引导过程,相信很多大牛都了如指掌,这里只是将自己的学习过程分享,文章中肯定有很多理解的不是很到位的地方,还望各位牛指点。    一、MBR调试   关于MBR的调试,网上也有好多帖子了,这个帖子也只是把我的学习过程分享出来,如果可以,我会从MBR开始,一步一步的去调试,去学习Windows操作系统,同时也把这个过程分享出来。闲话不多说了,开始进入主题。   目前用到的工具:   虚拟机:VMware   系统:ReactOS.0.3.15(安装win732位或者XP系统也可以用这个方法调试,这里选择

2、ReactOS是为了后面的调试做准备)   调试工具:IDA  首先设置虚拟机。在VMware创建的系统文件夹下找到.vmx文件,用记事本打开,添加如下配置信息    代码:debugStub.listen.guest32="TRUE"debugStub.hideBreakpoints="TRUE"bios.bootDelay="3000"    然后设置IDA。打开IDA,Debugger-->Attach-->RemoteGDBdebugger,在弹出的对话框进行如下设置    启动虚拟机后,再点击IDA弹出的对话框的"OK"按钮,选择第一个进程,点"OK",如下图 

3、   进入调试窗口后,转到0x7c00处,按"F2"下断点,然后按"F9"运行程序,当程序断下来之后,按"Alt+s",选择16位编码,这时反汇编可能会变成一堆数据,我们只要将其选中(446个字节),然后按“C”,选择“Force”,将数据强行转换成代码即可。     接下来就开始我们的调试了,先看下面的代码代码:MEMORY:7C00loc_7C00:               ;CODEXREF:MEMORY:loc_7CAEJMEMORY:7C00        cliMEMORY:7C01        cldMEMORY:7C02        xor  ax

4、,axMEMORY:7C04        mov  ss,axMEMORY:7C06        mov  ds,axMEMORY:7C08        mov  bp,7C00hMEMORY:7C0B        lea  sp,[bp-20h]MEMORY:7C0E        stiMEMORY:7C0F        mov  ax,1FE0hMEMORY:7C12        mov  es,axMEMORY:7C14        assumees:nothingMEMORY:7C14        mov  si,bpMEMORY:7C16   

5、     mov  di,bpMEMORY:7C18        mov  cx,100hMEMORY:7C1B        repmovsw       ;把MBR移动到1FE0h:7C00h处MEMORY:7C1D        jmp  farptr1FE0h:7C22h   这段代码很简单,就是把MBR拷贝到1FE0h:7C00h处,然后跳转到1FE0h:7C22h继续执行。接下来是在分区表中查找活动分区,看代码代码:MEMORY:27A22loc_27A22:               ;CODEXREF:MEMORY:7C1DJMEMORY:27A22 

6、       mov  ds,axMEMORY:27A24        assumeds:MEMORYMEMORY:27A24        mov  ss,axMEMORY:27A26        assumess:MEMORYMEMORY:27A26        xor  ax,axMEMORY:27A28        mov  es,axMEMORY:27A2A        lea  di,[bp+1BEh] ;获取分区表地址MEMORY:27A2E        test  byteptr[di],80h;是否是活动分区MEMORY:27A31     

7、   jnz  shortloc_7AA0附件6243MEMORY:27A33        add  di,10h    ;每个分区表项大小为16个字节MEMORY:27A36        cmp  di,7DFEh   ;分区表搜索是否结束MEMORY:27A3A        jb   shortloc_7A2E   这里需要对MBR有所了解才行。MBR是磁盘的第一个扇区,占512个字节(每个扇区都是512个字节)。前446个字节是引导代码,接下来的64个字节是分区表,共四个表项,最后两个字节是结束标志0xAA55。分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。