windbg调试相关命令
2017-10-20 08:13
274 查看
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
在此示例中,其中“/r c:\windows\system32”表示查找System32文件夹和所有子文件夹中的所有符号文件。“/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路径。在此例中,“c:\symbols”是将在其中从符号服务器复制符号的本地文件夹。
ida:在使用IDA对二进制文件进行逆向分析的时候,将基址修改为指定值:Edit->Segements->Rebase program
虚函数
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为例,设置多符号表情况:
查找函数: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”是将在其中从符号服务器复制符号的本地文件夹。
ida:在使用IDA对二进制文件进行逆向分析的时候,将基址修改为指定值:Edit->Segements->Rebase program
虚函数
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学习笔记八 - 内核调试常用命令2 - 进程相关
- WinDbg学习笔记九 - 内核调试常用命令3 - 线程相关
- WinDbg学习笔记十一 - 内核调试常用命令5 - 对象相关
- 软件调试笔记61 - WinDBG用法详解 :命令概览
- windbg调试命令3(sx、ld)
- WinDBG调试断点命令详解
- WinDbg学习笔记十 - 内核调试常用命令4 - 内存
- windbg调试命令1(k、u、x)
- windbg调试命令9(dt、d)
- WINDBG 相关命令
- GDB调试相关命令
- windbg调试命令5(ln、伪寄存器)
- wpa_cli P2P 连接相关的调试命令
- Windbg调试命令详解
- windbg调试命令4(用户层.dump)
- Windbg教程-调试非托管程序的基本命令上
- Windbg 调试基本步骤与常用命令
- Windbg调试命令详解(3)
- windbg调试命令
- wpa_cli P2P 连接相关调试命令