草庐IT

windbg 常用命令

小米渣的逆袭 2023-08-16 原文

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 常用命令的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. git常用命令 - 2

    gitclonehttp:www.git.com.cn........ 克隆git项目gitbranch 查看分支gitbranch-r查看远程分支gitpushorigin--delete分支名 删除远程分支tmpgitcheckout切换分支gitcheckout-b切换并创建分支gitcheckout-b分支名origin/分支名(如果远程分支已存在最好用此命令,在创建分支时会把远程分支最新代码一并拉下来,不会把原分支代码带过来)gitbranch-D删除分支gitpushorigin--delete分支名gitpush--set-upstreamorigin分支名 推送本地分支到远端g

  3. Git的常用命令介绍 - 2

    Git整体工作流程:Workspace:工作区Index/Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、版本仓库: 1.通过命令gitinit把这个目录变成git可以管理的仓库(这就欧科啦)(会生成.git文件)默认.git文件不显示2.gitadd xxxxx (将工作区的指定文件添加到暂存区中)              没有任何提示,说明已经添加成功了3.gitcommit-m ‘一些提交注释’(把文件提交到本地仓库)4.gitstatus (查看是否有文件没有被提交)     展示说明没有任何文件未提交,但是我现在继续来改下readme.txt内

  4. FFmpeg常用命令汇总 - 2

    FFmpeg的命令繁多,为了方便查询,在此作一个汇总可参考:https://ffmpeg.org/ffmpeg.html#Options目录一、命令基本格式及参数二、基本信息查询命令三、分解、复用四、处理原始数据五、滤镜六、拼接与裁剪七、直播八、ffplay九、其它一、命令基本格式及参数ffmpeg[global_options]{[input_file_options]-iinput_url}... {[output_file_options]output_url}...一些参数:参数说明-ffmt(输入/输出)强制输入或输出文件格式-y(全局参数)覆盖输出文件而不询问-n(全局参

  5. windows - 如何从 windbg 获取有关设备堆栈的信息 - 2

    Ihaveasetupinwhichhostiswin8andguestonvirtualmachineisalsowin8.Runningwindbgonhostanddebugginguestonvirtualmachinethroghpipe.Nowiwanttoanalysehowadevicestackisbuiltinternallyforakeboard.Forthiswhenirun"!drvobjkbdclass"onwindbgitdoesntshowupanykeyboarddeviceobjectinguest,Belowistheoutputwhatigetk

  6. windows - 无法在 WinDBG 中运行扩展命令 - 2

    (对我发布的类似问题感到抱歉,我已经对其进行了修改。)我正在尝试在WindowsXP上调试可执行的PE文件,以查看PDE和PTE在真实系统中的工作方式。我了解到windbg有一些命令可以查看详细信息。似乎!pte可以看到虚拟地址对应的PDE和PTE。但是我遇到了0:000>!pte找不到导出pte我做了一些谷歌工作,发现它是一个extensioncommand,但我没有看到有关如何启用这些扩展的任何说明。好像除了我,其他人都在直接用。我想知道我错过了什么,但我想不通。谁能给我一些建议?谢谢。 最佳答案 因为您使用的是xp本地内核调试

  7. windows - 无法在 Windows Server 2008 R2 标准上运行 windbg - 2

    我有最新的windowsserver2008R2标准,多个人都有帐户。我最近在上面安装了Windbg。但是我无法运行,因为它给出了以下错误。请注意,我拥有的所有正版操作系统都完全与最新的安全更新保持同步。windbg.exe-EntryPointNotFound---------------------------TheprocedureentrypointRtlCopyContextcouldnotbelocatedinthedynamiclinklibraryntdll.dll.---------------------------OK-----------------------

  8. windows - 将 windbg 命令输出写入文件,但不写入控制台 - 2

    在windbg中,我正在寻找一种机制来获取命令的输出(特别是断点内的命令)并将其附加到文件中,不写入控制台。目前我使用.logappendC:\path\to\log设置进程,然后启用几个断点:bpWIN32U!{function}".echo'===WIN32K-START===';k;.echo'===WIN32K-END===';g"这很好用,除了写入控制台的输出量会导致严重的性能问题。我希望有一种方法可以获得相同的输出到我的日志文件,而无需写入windbg控制台的开销。 最佳答案 您需要.outmask元命令:https:/

  9. windows - Windbg 中的卸载类型是什么? - 2

    我正在尝试调试内存转储,我正在查看一种被标记为2c172a8c13134271040234184有人知道这到底是什么意思吗?TIA安德鲁 最佳答案 这意味着该类型是由已卸载的程序集/dll定义的。由于它不再存在于内存中,因此调试器无法显示有关它的更多信息。 关于windows-Windbg中的卸载类型是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3915297/

  10. c++ - 在 WinDbg 中开始调试的基本设置+任务是什么? - 2

    引用我自己的话,来自问题Arethereanybooksthat“teach”WinDbg?:WiththeVisualStudiodebugger,IknowwhereIamatagivenpoint,thatisitisveryeasyandconvenienttosetitupsothatthecurrentbreakpoint(sourcecode)+disassembly+callstack+localvariables+...allmakesensetogether.It'satthispointthatI'dneedsomeadvancesWinDbgcommands,b

随机推荐