【windows核心编程】双机调试操作

1.1 中断与异常

    计算机最重要的任务就是执行指令,只要你设置一个起始位置,他就会一条指令的执行下去。而中断和异常机制是为了防止计算机无休止地执行任意指令,出现错误时可以引导处理器转向正常控制流而诞生的两种操作。
  中断主要是由一个外部硬件产生,告知操作系统某些操作产生,比如键盘,鼠标,时钟等等,并且这是一个异步事件。
  异常通常是程序执行过程中,产生了问题,急需处理,与当前处理器正在执行的任务有关,这是一个同步事件。

1.2 IDT

  中断和异常是统一管理的,系统为每一种中断或者异常都提供一个处理函数,学名叫陷阱处理器,当中断或者异常发生时,当前指令的执行就会转到特定的陷阱处理器中,此陷阱处理器完成中断或异常的处理工作。
 由于终端或异常的类型很多,系统为了方便管理,把各种陷阱处理器放入到一张表中(数组),然后中断和异常发生时,CPU就根据中断或者异常的类型,转入到表中某项去执行中断或异常的处理工作。此表,我们称之为IDT(中断描述符表)。

双机调试操作:

1、VirtualKD 是一个开源的调试辅助软件,能够帮助 WinDBG 与 VMWare 建立快速通讯
网址: http://virtualkd.sysprogs.org/
VirtualKD分为两部分
1.在VirtualKD目录下,打开相对应的vmmon64.exe程序,并配置调试器windbg路径

549050-20170308220334984-464570259.png

2.把 target文件夹拷贝到虚拟机中,并且在虚拟机中运行此文件夹下的 vminstall.exe,点 击“Instual” 按钮安装.
然后重启虚拟机中的目标系统,此时会有调试模式,我们选择它启动

549050-20170308220350203-1506409178.png

此时程序卡在了启动处

549050-20170308220403047-412833829.png

windbg自动运行起来
在命令窗口输入 g ,让目标系统运行起来

549050-20170308220417344-2116533025.png

微软符号服务器下载符号

打开windbg-File-Symbol File Path

549050-20170308220428500-2115725756.png

填入 SRVd:\mysymbolhttp://msdl.microsoft.com/download/symbols,【其中d:\mysymbol是我自己自定义的目录名称。】,加载完符号后。

549050-20170308220439203-191186664.png

查看目标系统的IDT表

在这里点击暂停目标程序

549050-20170308220452281-660659811.png

输入命令:!idt /a

549050-20170308220504484-604341939.png

IDT索引 作用
0x00~0x14 存放各个异常的陷阱处理器
0x14~0x20 保留
0x20~0x29 空白,供系统和程序员自己分配注册使用
0x2A~0x2E Windows自身使用的5个中断号
0x30~0xFF 给硬件中断使用

1.2.2 使用PC-Hunter查看IDT

打开PC-Hunter,点击内核钩子,点击下面的子项能够查看IDT表中的内容,所对应的陷阱处理中的内容。

549050-20170308220524344-1366010508.png

参考:

使用VirtualKD构建双机调试
http://blog.csdn.net/coc_k/article/details/52034927
微软符号服务器下载符号总结
http://www.cnblogs.com/maifengqiang/archive/2011/10/11/2206925.html

转载于:https://www.cnblogs.com/17bdw/p/6523334.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值