windbg 常用命令

Posted 小米渣的逆袭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windbg 常用命令相关的知识,希望对你有一定的参考价值。

windbg 常用命令

// 列出所有模块对应的符号信息

x sede_guardx!*

x sede_guardx!drawWatermark*

x sede_guardx!*createMemDC*

// 查看当前堆栈

k

//下断点

bu sede_guardx!drawWatermark 或者 bm sede_guardx!drawWatermark

或者 bu sede_guardx!WatermarkWindow::createMemDC

bu  sede_guardx!WatermarkWindow::createMemDC+0x25d

bl   // 列出所有断点

bc * // 清除所有断点

bc 1 // 清除1号断点

bc 1 2 5  // 清除1号、2号、5号断点

be *  // 启用所有断点

be 1  // 启用1号断点

be 1 2 5 // 启用1号、2号、5号断点

bd *  // 禁用所有断点

bd 1  // 禁用1号断点

bd 1 2 5 // 禁用1号、2号、5号断点

bp 7c801b00  // 在7c801b00地址处放置一个断点

bp MyDll+0x1032  // 在模块MyDll.dll偏移0x1032处放置一个断点

bp `ConsoleTest.cpp:36`  // 在ConsoleTest.cpp的36行处放置一个断点

bp main // 在main函数的起始处放置一个断点

bp @$exentry  // 在进程的入口放置一个断点

bp CSecondLoader::CSecondLoader  // 在CSecondLoader的构造函数处放置一个断点

bp TestCommon! CTest::add  // 在TestCommon.dll的Test.cpp文件的CTest::add()函数起始处放置一个断点

bp `ConsoleTest.cpp:40` ".if (poi(pVar)>5) ; g" // ".if (Condition) Optional Commands; g"    条件断点 pVar指针指向的值>5,执行空语句(;),断住  否则继续执行

bp `ConsoleTest.cpp:40` "j (poi(pVar)>5) ' '; 'g'" // "j (Condition) 'Optional Commands'; 'g'"    j为条件表示式:条件断点 pVar指针指向的值>5,执行空语句(;),断住  否则继续执行

注:Condition表达式语法默认的是MASM表达式语法。使用复杂C++表达式时我们需要用@@c++()将表达式包围住;如:"j @@c++(*pVar>5) ' '; 'g'"

 //查看断点

bl

 //单步调试

p

p    // 单步执行(F10)  【Step】

p 2 // 2为步进数目

pc   // 执行到下一个函数调用处停下 【Step to  Next Call】

pa 7c801b0b // 执行到7c801b0b地址处停下  【Step to Adress】

t     // Step into(F11) 【Trace】

tc    // 执行到下一个进入点(Call指令)处停下 【Trace to Next Call】

//函数参数变量请用dv命令

dv

若要查看在记事本进程中加载的代码模块列表,请输入以下命令:

lm

0:000> lm
start             end                 module name
00007ff6`6e760000 00007ff6`6e798000   notepad    (pdb symbols)          C:\\ProgramData\\Dbg\\sym\\notepad.pdb\\BC04D9A431EDE299D4625AD6201C8A4A1\\notepad.pdb
00007ff8`066a0000 00007ff8`067ab000   gdi32full   (deferred)             
00007ff8`067b0000 00007ff8`068b0000   ucrtbase   (deferred)             
00007ff8`06a10000 00007ff8`06aad000   msvcp_win   (deferred)             
00007ff8`06ab0000 00007ff8`06ad2000   win32u     (deferred)             
00007ff8`06b40000 00007ff8`06e08000   KERNELBASE   (deferred)             
00007ff8`07220000 00007ff8`072dd000   KERNEL32   (deferred)             
00007ff8`07420000 00007ff8`07775000   combase    (deferred)             
00007ff8`07820000 00007ff8`079c0000   USER32     (deferred)             
00007ff8`079c0000 00007ff8`079f0000   IMM32      (deferred)             
00007ff8`07c00000 00007ff8`07c2a000   GDI32      (deferred)             
00007ff8`08480000 00007ff8`085ab000   RPCRT4     (deferred)             
00007ff8`085b0000 00007ff8`0864e000   msvcrt     (deferred)             
00007ff8`08c40000 00007ff8`08cee000   shcore     (deferred)             
00007ff8`08db0000 00007ff8`08fa5000   ntdll      (pdb symbols)          C:\\ProgramData\\Dbg\\sym\\ntdll.pdb\\53F12BFE149A2F50205C8D5D66290B481\\ntdll.pdb
00007fff`f8580000 00007fff`f881a000   COMCTL32   (deferred)

以上是关于windbg 常用命令的主要内容,如果未能解决你的问题,请参考以下文章

windbg 常用命令

常用windbg命令(转)

windbg 常用命令详解

WinDbg常用命令系列---.cmdtree

学习使用常用的windbg命令(udtlnx)

WinDbg常用命令系列---!address