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实用程序下载 Windows\System32 文件夹中所有组件的符号文件,使用以下命令行即可:

symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols

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

在此示例中,其中“/r c:\windows\system32”表示查找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

windbg调试相关命令的更多相关文章

  1. Android模拟器avd的创建、使用和调试相关命令

    1.创建AVD命令:android-sdk-windows\tools目录下面有android命令  android list 列出当前系统中已安装的Android版本以及已安装的AVD(Androi ...

  2. linux 调试相关命令

    1. tail -f filename 调试时,log输出到文件,但是又想看到即时输出信息 未完待续....

  3. Windbg调试命令详解

    作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...

  4. 调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令

    调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (二)使用Windbg调试SQLSERVER ...

  5. Windbg调试命令详解(1)

    转载注明>> [作者:张佩][镜像:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是 ...

  6. WinDBG 调试命令大全

    转载收藏于:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html  #调试命令窗口 ++++++++++++++++++++++++ ...

  7. WinDbg常用命令系列---源代码操作相关命令

    lsf, lsf- (Load or Unload Source File) lsf和lsf-命令加载或卸载源文件. lsf Filename lsf- Filename 参数: Filename指定 ...

  8. WinDbg常用命令系列---日志操作相关命令log*

    .logopen (Open Log File) .logopen命令将事件和命令的副本从调试器命令窗口发送到新的日志文件. .logopen [Options] [FileName] .logope ...

  9. 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置

    调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (三)使用Windbg调试SQLSERVER ...

随机推荐

  1. PlantUML类图

    PlantUML类图   雨客 2016-04-08 11:38:03 浏览796 评论0 摘要: 类之间的关系 PlantUML用下面的符号来表示类之间的关系: 泛化,Generalization: ...

  2. NOIP模拟1

    期望得分:100+100+100=300 实际得分:94+96+97=287 T1  #6090. 「Codeforces Round #418」尘封思绪 #include<cstdio> ...

  3. 数学&模拟:随机化-矩阵随机化

    BZOJ2396 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立 随机生成一个N乘1的矩阵R 然后判断A*B*R是否等于C*R,而前者相当于A*(B*R) 与后者一样都可以在O(N2 ...

  4. CF760 C. Pavel and barbecue 简单DFS

    LINK 题意:给出n个数,\(a_i\)代表下一步会移动到第\(a_i\)个位置,并继续进行操作,\(b_i\)1代表进行一次翻面操作,要求不管以哪个位置上开始,最后都能满足 1.到达过所有位置 2 ...

  5. Redhat安装配置VNC服务器

    1. 检查安装VNC服务器 # rpm -qa|grep vnc 如果返回信息中有tigervnc-server,说明已安装了VNC:如果没有: # yum install tigervnc # yu ...

  6. eclipse中修改svn用户名和密码

    开发中有时候用公共的电脑提交一些代码,eclipse没有专门的切换svn账户的功能.查阅资料得出解决办法: 1. 查看你的Eclipse 中使用的是什么SVN Interface  windows & ...

  7. TCP和UDP相关概念

    位于传输层的协议,都是基于IP协议的. TCP是面向连接的.可靠的传输,UDP是无连接的.不可靠的传输.要进行TCp传输时候,需要进行三次握手,建立连接,然后才能发送数据,而且在发送过程中,有数据的确 ...

  8. 千里之行始于足下,node.js 资源中文导航

    响应@jiyinyiyong 号召,cnodjs 好的资源蛮多的,的确欠缺分类,在一群FAQ中,的确很容易沉下去,根据自己对node.js的理解,做成一个资源导航,PS:如果觉得合适,希望能够合并的c ...

  9. python学习笔记(十五)之集合

    集合:对应数学中的集合类型.集合中的元素是唯一,且无序的. 创建集合 方法一:使用{},注意python会自动删除重复元素 >>> number = {1,2,3,4,3,2,1} ...

  10. Calendar 日期类介绍

    Calendar c = Calendar.getInstance();//创建实例 默认是当前时刻 c.get(Calendar.YEAR); c.get(Calendar.MONTH); c.ge ...