【逆向】WinDbg符号文件详解
符号文件 编译器和链接器在创建二进制镜像文件(诸如exe、dll、sys)时,伴生的后缀名为(".dbg",".sym",".pdb")的包含镜像文件编译、链接过程中生成的符号信息的文件称为符号文件。 具体来说,符号信息包括如下内容: 1 // 全局变量(类型、名称、地址) 2 // 局部变量(类型、名称、地址) 3 // 函数(名称、原型、地址) 4 // 结构体类型定义 符号路径 符号路径是调试器寻找符号文件的方向,它可以是本地文件夹路径、可访问的UNC路径、或者是符号服务器路径。符号服务器有一套命名规则,使得调试软件能够正确找到需要的符号文件。为了降低网络访问的成本,WinDbg会将从服务器上下载到的符号文件,保存在本地缓存中,以后调试器需要符号文件的时候,先从缓存中寻找,找不到的时候再到服务器上下载。 设置符号路径 WinDbg允许用户指定一个或多个目录来存放符号文件,并使用环境变量" _NT_SYMBOL_PATH "来指向这些目录的位置。这样WinDbg在启动时就会自动到这些目录中搜索相应的符号文件。对操作系统内部模块的符号文件,你可以在微软官方网站上下载符号文件包(现在不提供离线下载了)。但是操作系统经常升级会导致系统中很多模块的实际版本与已经发布的符号文件无法匹配,因此,实际使用过程中最常用的方式是根据使用的模块版本访问微软提供的符号服务器下载( http:/