zoukankan      html  css  js  c++  java
  • VirtualKD+Windbg+vmware 极速调试+Windbg下载符号+windows 7本地内核调试

    ================================Windbg下载符号===================================
    打了补丁后经常出现"Your debugger is not using the correct symbols",

    使用WINDBG命令下载更新符号文件即可,以下命令不能去掉“.”,打完命令就开始下载了 流量监控可以看到

    1: .sympath srv*G:WinDDK7600.16385.1DebuggersSymbols*http://msdl.microsoft.com/download/symbols

    2: !sym noisy

    3: .reload
    完成下载后
     lkd>.reloadConnected to Windows 7 7600 x86 compatible target at (Fri Apr 29 21:42:54.477 2011 (UTC + 8:00)), ptr64 FALSELoading Kernel Symbols.............................................................................................................................................................Loading User SymbolsPEB is paged out (Peb.Ldr = 7ffda00c).  Type ".hh dbgerr001" for detailsLoading unloaded module list..lkd> !sym noisynoisy mode - symbol prompts onlkd> !sym noisynoisy mode - symbol prompts onlkd> .sympath srv*G:WinDDK7600.16385.1DebuggersSymbols*http://msdl.microsoft.com/download/symbols DBGHELP: Symbol Search Path: srv*g:winddk7600.16385.1debuggerssymbols*http://msdl.microsoft.com/download/symbols DBGHELP: Symbol Search Path: srv*g:winddk7600.16385.1debuggerssymbols*http://msdl.microsoft.com/download/symbols Symbol search path is: srv*G:WinDDK7600.16385.1DebuggersSymbols*http://msdl.microsoft.com/download/symbols Expanded Symbol search path is: srv*g:winddk7600.16385.1debuggerssymbols*http://msdl.microsoft.com/download/symbols WARNING: Whitespace at end of path element
    下面在使用命令 dt _eprocess 出来了.本机7600.16695

    lkd>  dt _eprocessntdll!_EPROCESS 

      +0x000 Pcb              : _KPROCESS

    ================================极速双机调试VirtualKD+Windbg+vmware==================================
    双机调试的时候,不管是Windbg+vmware,还是Windbg+1394,其调试速率都是相对比较低的,有时候执行一条p命令,Windbg的状态都会BUSY..好久...
    VirtualKD可以完美的解决这一问题。
    VirtualKD主要是用来提高当使用vmware或virtualBox进行windows内核调试时的速率。以前的双机标准调试方法是利用虚拟COM串口,其速率很低。
    通常,通过虚拟COM串口进行调试包括以下步骤:
    1.windows使用虚拟COM串口和host主机之间进行数据交换;
    2.WinDbg/KD使用VM提供的一个PIPE管道来与目标调试机进行通信。
    这里最弱的连接是虚拟COM串口,其传输速率仅为:115200 baudrate,等效于115200 bit per second,也就是大约10KB/S的传输速率。VirtualKD取代了虚拟COM串口的功能,极大的提高了数据交换速率,可达6MB/S,但是官方给出的用!irpfind命令测试的话,vmware平台可达150KB/S,不过已经比虚拟COM串口快了15倍了。具体的效果只有在调试过程当中,才会体会到 -:) 事实上,VirtualKD的主要原理是,利用KD的扩展DLL功能,并且向虚拟机patch一个进程,二者通过pipe来进行通信。
    使用方法:
    1.配置方法可简单,可复杂。简单的方法有自动化,复杂的方法有手动配置。手动方法分为动态patch和静态patch两种,具体的可参考官网。http://virtualkd.sysprogs.org/
    2.现在只说明下自动安装的情况,目标机为vmware,若是VirtualBox,则稍有改动
    下载VirtualKD安装包,解压后,父目录下virtualKD2.2下有一个target目录,将该target目录copy到虚拟机,点击target/vminstall.exe 运行,然后直接安装即可。如图1所示,vminstall.exe会自动检测虚拟机的内核版本,因为我的目标机是wrk 的内核,故显示:wrk debug【VirtualKD】,当然,你也可以将显示的字符串修改后,再点击安装。

    当目标机为XP系统的时候,情况如图2所示:
     
    (图2)

    选择install以后,按照提示直接重启。
    接着,在host主机端开启vmmon.exe程序即可(记着,vmmon程序要始终开启着),该程序会自动检测到虚拟机当中正在运行的操作系统。简单的设置下windbg的路径和启动方式(自动/手动),那么一切就OK了。虚拟机启动的时候,windbg调试机就自动或手动挂接上了。如图:



    其实配置过程非常简单。这里写的比较啰嗦了,主要是自己第一次配置的时候,没好好读说明书,结果手动配置,浪费了时间;后来选择vminstall.exe自动安装,忘记了设置Debugger path..又浪费了时间去检查。
    最终的结论是,使用VirtualKD代替了传统的虚拟COM串口以后,调试速度是飞一般的快。
    接受新事物总是好的,认知的过程总是有点小曲折,不过目标对象是多么简单!!!

    ========================windows 7本地内核调试================

    使用VistaLKD 如下图

  • 相关阅读:
    java添加后台缓存
    Acunetix WVS安全测试软件使用教程(入门级)
    spring mvc + ajax上传文件,页面局部刷新
    github新手使用教程
    Junit使用方法
    反射(动态代理)
    TCP--文件上传
    网络编程--UDP通讯
    线程实现计时器,多线程间通信
    序列流
  • 原文地址:https://www.cnblogs.com/M-Mr/p/4057131.html
Copyright © 2011-2022 走看看