windbg调试相关命令

  1. windbg
  • 查找函数:x exe!main*
  • 条件断点打印字符:bp 7199a2b0 ".printf "message:%ma", poi(@esp+8);.echo;g"//
  • 搜索内存:s -a 0000000000780000  L8000000  "This is a test2"
  • !address,可以查看进程的堆布局,堆属性。!address my_addr,直接查看具体地址。
  • bp  myexe+0x85d01 ".echo abc;r r8;r rcx;dc myexe+1000;gu;g"//直接使用偏移,gu运行到当前函数结束。.echo abc打印abc字符串。
  • bu myexe+0x800;设置全局断点,下次重启时还存在;bm myexe!myclass::*,对myclass类所有函数下断点。
  • p相当于f10,t相当于f11,trace
  • ?c-1,用来计算公式。
  • gflags.exe  /i a.exe +hpa +ust.
  • call指令相当于push eip(esp也会增加4),retn相当于pop eip
  • 修改寄存器命令:r @eax=1
  • 修改内存命令:ed (esp+8)  0xffffffff
  • !heap -flt s 8010    //列出 所有指定大小的分配块
  • 命令行下载符号表

这里可以使用 SymChk.exe 实用程序验证符号并以方便、非入侵性的方式生成本地符号高速缓存。SymChk.exe 实用程序随 Debugging Tools for Windows 软件包提供。SymChk.exe 是一种命令行工具。

比如要使用 SymChk.exe实用程序下载 WindowsSystem32 文件夹中所有组件的符号文件,使用以下命令行即可:

symchk /r c:windowssystem32 /s SRV*c:symbols*http://msdl.microsoft.com/download/symbols

c:progra~1debugg~1symchk.exe /r c:progra~1mozill~1* /s SRV*C:symcache*http://symbols.mozilla.org/firefox

在此示例中,其中“/r c:windowssystem32”表示查找System32文件夹和所有子文件夹中的所有符号文件。“/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路径。在此例中,“c:symbols”是将在其中从符号服务器复制符号的本地文件夹。

  1. ida:在使用IDA对二进制文件进行逆向分析的时候,将基址修改为指定值:Edit->Segements->Rebase program
  2. 虚函数
  3. windbg线程
    • ~               简洁地显示当前进程的所有线程,  
    • ~.              表示当前线程  
    • ~#              表示异常或者产生调试事件的线程  
    • ~*              表示所有线程  
    • ~1              表示一号线程  
    • ~2 s            表示选择2号线程作为当前线程  
    • ~3 f            冻结三号线程  
    • ~3 u            解冻三号线程  
    • ~2 n            挂起二号线程  
    • ~2 m            恢复二线程  
    • ~*e !clrstack   遍历每个线程, 依次输出它们的托管调用栈.  
    • !threads        查看所有的托管线程
    • 在多线程排除问题中,通过线程转换(~2),查看每个线程的栈(k),分析其在那里堵塞。然后结合源码分析。

3.windbg常见符号表地址

Microsoft – http://msdl.microsoft.com/download/symbols

Firefox   – http://symbols.mozilla.org/firefox

Chrome    – http://chromium-browser-symsrv.

Citrix    – http://ctxsym.citrix.com/symbols

Safari     --http://developer.apple.com/internet/safari/windows_symbols

调试firefox为例,设置多符号表情况:

SRV*c:symcache*http://msdl.microsoft.com/download/symbols;SRV*c:symcache*http://symbols.mozilla.org/firefox
原文地址:https://www.cnblogs.com/studyskill/p/7697677.html