zoukankan      html  css  js  c++  java
  • windbg命令学习1

    一、windbg 常用知识:

    1. Windbg中的调试命令,分为三种:基本命令,元命令和扩展命令。基本命令和元命令是调试器自带的,元命令总是以“.”开头,而扩展命令是外部加入的,总是以感叹号“!”开头

    基本命令最少了,大概40个左右。列举所有的基本命令,使用如下命令:

    • ?

    元命令有一百多个,使用下面命令列举所有元命令:

    • .help  [/D]

    小技巧:

    标准命令帮助

    ?

    ? /D

    元命令帮助

    .help 

    .help /D 
    .help /D a*

    扩展命令帮助

    !help

    !help savemodule

     

    在命令行中开启WinDBG的chm帮助

    .hh

    .hh lm

     

     

    2. 基本信息

    • version    显示操作系统的版本信息以及Windbg本身的版本信息,Windbg的配置和操作系统密切相关,所以将操作系统的版本信息一并显示出来是很有必要的。
    • time   查看系统时间。这包括系统当前时间,以及系统正常运行持续时间;用户模式下还会显示当前进程的持续时间  

    3.  基本设置

    • .cls  清屏命令
    • n [8|10|16]   软件默认是16进制,但有时候我们也需要把默认进制改成八进制或十进制的

    4. 开始调试

      q | qq | qd  彻底结束调试

      .dump  /mfh   C: est.dmp  保存成dmp文件

     

    二、符号与源码

    什么是符号文件呢?编译器和链接器在创建二进制镜像文件(诸如exe、dll、sys)时,伴生的后缀名为.dbg、.sym或.pdb的包含镜像文件编译、链接过程中生成的符号信息的文件称为符号文件。具体来说,符号信息包括如下内容:

    • 全局变量(类型、名称、地址);
    • 局部变量(类型、名称、地址);
    • 函数(名称、原型、地址);
    • 变量、结构体类型定义;

    1. 有几个命令可以用来列举模块列表

    • lm [选项] [a Address] [m Pattern | M Pattern][/v]
    • lm v 使用/v选项能列出模块的详细信息,包括:模块名、模块地址、模块大小、镜像名、时间戳、以及对应的符号文件信息(包括类型、路径、类型、编译器、符号加载状态)。
    • lmD 显示所有模块详细信息

      lm v a 00400000    显示地址为00400000 模块的详细信息

      

    • !dh [标志] 模块地址

      dh是display header的缩写,直译就是“显示文件头”的意思,它能够显示非常详细的PE头信息。

     

    2. 线程与进程

    既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息。调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺。

    多个命令可显示进程列表,但一般只能在特定情况下使用,它们是:|、.tlist、!process和!dml_proc。

     

      

     

     

  • 相关阅读:
    IOS开发之-Xcode插件
    IOS开发之-NS**概述
    python 中文乱码 问题深入分析
    Django入门示例之被解放的姜戈——03 所谓伊人(模板及模板处理)
    td太多内容显示...
    div 居中CSS实现
    取得页面元素类型 转
    aspose.words 处理word转PDF
    jacob 操作word转pdf
    ajax 数据回传
  • 原文地址:https://www.cnblogs.com/yu2000/p/3968975.html
Copyright © 2011-2022 走看看