【windows核心编程】双机调试操作
1.1 中断与异常##
计算机最重要的任务就是执行指令,只要你设置一个起始位置,他就会一条指令的执行下去。而中断和异常机制是为了防止计算机无休止地执行任意指令,出现错误时可以引导处理器转向正常控制流而诞生的两种操作。
中断主要是由一个外部硬件产生,告知操作系统某些操作产生,比如键盘,鼠标,时钟等等,并且这是一个异步事件。
异常通常是程序执行过程中,产生了问题,急需处理,与当前处理器正在执行的任务有关,这是一个同步事件。
1.2 IDT##
中断和异常是统一管理的,系统为每一种中断或者异常都提供一个处理函数,学名叫陷阱处理器,当中断或者异常发生时,当前指令的执行就会转到特定的陷阱处理器中,此陷阱处理器完成中断或异常的处理工作。
由于终端或异常的类型很多,系统为了方便管理,把各种陷阱处理器放入到一张表中(数组),然后中断和异常发生时,CPU就根据中断或者异常的类型,转入到表中某项去执行中断或异常的处理工作。此表,我们称之为IDT(中断描述符表)。
双机调试操作:###
1、VirtualKD 是一个开源的调试辅助软件,能够帮助 WinDBG 与 VMWare 建立快速通讯
网址: http://virtualkd.sysprogs.org/
VirtualKD分为两部分
1.在VirtualKD目录下,打开相对应的vmmon64.exe程序,并配置调试器windbg路径

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

此时程序卡在了启动处

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

微软符号服务器下载符号###
打开windbg-File-Symbol File Path

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

查看目标系统的IDT表###
在这里点击暂停目标程序

输入命令:!idt /a

IDT索引 作用
0x00~0x14 存放各个异常的陷阱处理器
0x14~0x20 保留
0x20~0x29 空白,供系统和程序员自己分配注册使用
0x2A~0x2E Windows自身使用的5个中断号
0x30~0xFF 给硬件中断使用
1.2.2 使用PC-Hunter查看IDT###
打开PC-Hunter,点击内核钩子,点击下面的子项能够查看IDT表中的内容,所对应的陷阱处理中的内容。

参考:
使用VirtualKD构建双机调试
http://blog.csdn.net/coc_k/article/details/52034927
微软符号服务器下载符号总结
http://www.cnblogs.com/maifengqiang/archive/2011/10/11/2206925.html
【windows核心编程】双机调试操作的更多相关文章
- 使用同步或异步的方式完成 I/O 访问和操作(Windows核心编程)
0x01 Windows 中对文件的底层操作 Windows 为了方便开发人员操作 I/O 设备(这些设备包括套接字.管道.文件.串口.目录等),对这些设备的差异进行了隐藏,所以开发人员在使用这些设备 ...
- CreateThread 线程操作与 _beginthreadex 线程安全(Windows核心编程)
0x01 线程的创建 线程不同于进程,Windows 中的进程是拥有 '惰性' 的,本身并不执行任何代码,而执行代码的任务转交给主线程,列如使用 CreateProcess 创建一个进程打开 Cmd ...
- QT核心编程之调试技术 (g)
Qt应用程序的调试可以通过DDD进行跟踪调试和打印各种调试或警告信息.DDD(Data Display Debugger)是使用gdb调试工具的图形工具,它安装在Linux操作系统中,使用方法可参考D ...
- 【windows核心编程】 第八章 用户模式下的线程同步
Windows核心编程 第八章 用户模式下的线程同步 1. 线程之间通信发生在以下两种情况: ① 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性 ② 一个线程需要通知其他线程 ...
- 《Windows核心编程》读书笔记 上
[C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...
- 【Windows】windows核心编程整理(下)
windows核心编程整理(上) windows核心编程整理(下) 线程的堆栈 每当创建一个线程时,系统就会为线程的堆栈(每个线程有他自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个以保 ...
- 【Windows】windows核心编程整理(上)
小续 这是我11年看<windows核心编程>时所作的一些笔记,现整理出来共享给大家 windows核心编程整理(上) windows核心编程整理(下) 线程的基础知识 进程是不活泼的,进 ...
- C++Windows核心编程读书笔记
转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...
- 【转】《windows核心编程》读书笔记
这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入 ...
随机推荐
- MT【234】正方形染色(二)
有$n$个正方形排成一行,今用红,白,黑三种颜色给这$n$个正方形染色,每个正方形只能染一种颜色.如果要求染这三种颜色的正方形都是偶数个,问有多少种不同的染色方法. 解答: 设有$a_n$种不同的染法 ...
- MT【207】|ax^2+bx+c|中判别式$\Delta$的含义
已知$a,b\in R^+,a+b=2$且对任意的$x\in R$,均有$|2x^2+ax-b|\ge|x^2+cx+d|$则$\dfrac{d-4c}{cd}$的最小值______ 提示:注意到$\ ...
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
- luogu1965 转圈游戏 (快速幂)
求(m*10^k+x)%n即可 #include<cstdio> #include<cstring> #include<algorithm> #define LL ...
- C++11并发——多线程lock_gurad ,unique_lock (三)
http://www.cnblogs.com/haippy/p/3346477.html struct defer_lock_t {}; 该类型的常量对象 defer_lock(defer_lock ...
- hashlib模块(二十八)
# 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的 ...
- shell提取文件后缀名,并判断其是否为特定字符串
如果文件是 .css文件 或 .js文件,则进行处理. file=$1 if [ "${file##*.}"x = "css"x ]||[ "${fi ...
- ElasticSearch 批量增加索引
服务端批量增加索引,版本是5.1.1 TransportClient client; Settings esSettings = Settings.builder() .put("clust ...
- webStorm2018激活的方法
问题 激活 webstorm 2018 最新版 解决步骤 License server:http://im.js.cn:8888
- C# 中对于json的解析小结
1.解析之前的json格式 [{ "Name": "冯111", "PID": "130627199202283306" ...