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 如下图

  • 相关阅读:
    docker 安装mysql
    Java web项目搭建系列之二 Jetty下运行项目
    Java web项目搭建系列之一 Eclipse中新建Maven项目
    Maven 添加其他Maven组件配置问题
    C# 中定义扩展方法
    Oracle 函数
    【Webservice】2 counts of IllegalAnnotationExceptions Two classes have the same XML type name
    Linux精简版系统安装网络配置问题解决
    Rsync 故障排查整理
    Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.
  • 原文地址:https://www.cnblogs.com/M-Mr/p/4057131.html
Copyright © 2011-2022 走看看