Windbg
+ -

Windbg符号库官方和国内备用镜像地址设置

2023-11-10 501 1

使用.symfix可以设置Windbg的符号库为微软官方的:

SRV*D:\Symbol*http://msdl.microsoft.com/download/symbols;

但是由于网络等原因,经常导致符号库下载失败等。故可以使用备用国用镜像地址:

SRV*e:\Symbol*http://msdl.blackint3.com:88/download/symbols

方式2:手动更改环境_NT_SYMBOL_PATH环境变量,使用节点:

http://msdl.blackint3.com:88/download/symbols

感谢BlackINT3大神提供的资源:https://github.com/BlackINT3/symcn-site

Home: http://msdl.blackint3.com:88/

Windows符号服务器镜像节点,用于国内加速。

为什么要开发这套系统?

  • 首先响应速度和下载速度比官方节点快10倍以上
  • PDB服务器的Azure云只有国外节点,因此IP可能被墙导致下载失败
  • 国外网速慢等原因,导致丢包,PDB不完整加载失败
  • Windbg、Visual Studio调试时的Busy状态绝大部分都是由于下载符号慢导致
  • Procmon、Procexp、IDA等需要解析符号的软件,能在栈回溯、反汇编时快速获取对应符号
  • 可提供文件查询、下载等诸多功能,将用于OpenArk或其他第三方软件

常见问题

  • windbg加载符号提示mismatched:可能是符号下载不完整,删掉缓存目录对应的pdb文件,重新加载,
    .reload /f xxx.dll
    
  • 环境变量不生效:重启explorer.exe
  • 其他问题联系作者或issue.

0 篇笔记 写笔记

Windbg 跟踪句柄泄漏(!htrace)
!htrace(Handle Trace) 扩展用于显示一个或多个句柄的堆栈回溯信息。直接用!htrace -?可以看到简单使用说明:0:000> !htrace -? !htrace [handle [max_traces]] !htrace -enable [max_traces......
Windbg 断点命令BP
断点指令:BP,BM,BA,BL,BC,BD,BEBP 在指定的地址设置断点bp notepad!WinMain,在Notepad的WinMain函数处下断点。断点的位置可以用符号表示,也以直接使用地址及Windbg的Pseudo-Register(虚拟寄存器),如$exentry表示进程的入口点,......
Windbg 符号查找命令x
x 查看模块的符号,如x nt!KeServiceDescriptorTable**,显示所有与 nt!KeServiceDescriptorTable匹配的符号列表kd> x nt!KeServiceDescriptorTable*8046e100 nt!KeServiceDescrip......
Windbg 符号库及源文件设置
Windbg设置一般分为符号库路径设置和源文件路径设置符号库路径设置打开菜单栏,选择“Symbol File Path …”,在弹出的对话框栏中填入可载的入符号库,多个路径以分号“;”分隔。微软提供了操作系统的全部符号库,所以如果要进行windows系统自带的内核模块或应用模块进行调试,也可以只需......
Windbg 进程环境块!peb
!peb 查看当前进程环境块(PEB)注意:在64位操作系统下,使用64位和32windbg调试32位进程时,看到的地址不一样。如64位下的notepad内容如下:0:001> !pebPEB at 000007fffffd3000 InheritedAddressSpace:......
Windbg 自动分析!analyze
调试一个当机的目标计算机或应用程序,第一步是使用 !analyze 扩展命令。该扩展执行大量的自动分析。分析结果在调试器命令窗口中显示。若要数据的全冗长模式显示,你应该使用 -v 选项。例如: !analyze -v用户模式 !analyze -v 示例本例中,调试器被附加到一个已遭遇异常......
Windbg 反汇编命令u/uf
反汇编指令u,uf对指令的地址进行反汇编或对某一个函数进行反汇编u @$exentry L10L10表示控制显示0x10行反汇编,即16行0:001> u @$exentry L10notepad!WinMainCRTStartup:01006420 55 ......
Windbg 内存属性(!address)
!address!address 扩展显示目标进程或目标机使用的内存信息在调试时, 对象和栈都包含了大量的指针, 我们无法很快地猜测出他们所表示的数据. 虽然我们可以很容易地将内核空间的地址与用户态空间的地址分开, 但要把一个表示栈的地址和一个表示堆的地址区分开却不容易. 我们可以使用一个很有用的......
Windbg 结构体命令dt
dt 查看类型数据,还可用于查看模块类型的符号列表,如 dt _IMAGE_DOS_HEADER 00000000ff800000 从00000000ff800000处查看_IMAGE_DOS_HEADER类型的数据0:001> dt _IMAGE_DOS_HEADER 0000000......
Windbg 简介
Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持源代码和汇编两种模式的调试,也可以对软件运行过程中的dumpy文件进行分析。Windbg不仅可以调试应用程序,还可以进行Kernel Debug,同时结合Microsoft的Symbol Server调试应用程序和K......
Windbg 寄存器命令r
Windbg中r指令除了可以显示修改CPU寄存器之外,Pseudo-Register可使用这个命令来修改。对eax 操作,r eax 显示其值,r eax=2,修改其值;r $t2=10,修改Pseudo-Register的值,r @$t2显示其值。0:001> rrax=000007f......
Windbg 搜索命令s
在内存中搜索某个值 - 命令s命令s(表示搜索search), 是一个非常有用的命令, 可以用来在调试目标内找出已知的值.这个命令的参数包括素要搜索的类型和值.s –d 0012ff40 L1024 c0000005其中-d代表双字DWORD, 是搜索的类型. 其他类型例举如下:b – B......
Windbg 模块列表命令lm
lm,显示当前加系统(内核)或进程加载的模块如x64记事本下:0:001> lmstart end module name00000000`77410000 00000000`7750a000 USER32 (defe......
Windbg 格式化命令.formats
以多种格式显示表达式的值windbg默认为16进制.formats 1000:001> .formats 100Evaluate expression: Hex: 00000000`00000100 Decimal: 256 Octal: 0000000000......
Windbg 打开源文件命令open
当配置了源文件路径后,可以通过.open命令打开源文件。如.open hello.c......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!