有没有办法为封闭网络获取整个平台的所有符号?

时间:2015-08-14 01:23:41

标签: debugging windbg

我需要在W2K8 R2的封闭网络中调试内核转储。我尝试使用“Windows 7 Service Pack 1 x64零售符号,所有语言”包下载“Windows 7和Windows Server 2008 R2”符号 Microsoft

我将其刻录,复制并加载符号,WinDbg声称它是ntkrnlmp.pdb的错误PDB。所以这很好,除了我不想继续这样做,试图找到正确的包下载。

我开始研究这个问题并找到很多文章讨论如何让symchk递归查看Windows或System32的本地目录以自动下载这些文件的PDB。

但我需要能够为不同的操作系统下载所有PDB而不是搜索网页:Windows 2008 R2,而不是Win7。

有没有办法将Windows 2008 R2的所有可能符号下载到Windows 7,以便可以复制/刻录它们并最终在封闭网络上使用?

1 个答案:

答案 0 :(得分:3)

转储的所有符号

我使用的方法是下载转储所需的所有符号。这可以按如下方式完成:

  1. 在受限制的计算机上创建符号列表
  2. 将列表复制到具有Internet连接的计算机
  3. 下载具有Internet连接的计算机上的所有符号
  4. 将符号复制回受限制的机器
  5. 这样你就不需要从受限制的机器上复制任何敏感信息(如转储)。

    实现这一目标的工具是WinDbg附带的symchk。以下命令应该有效:

    1. symchk /id <dumpfile>.dmp /om symbols.lst
    2. 无论你喜欢什么
    3. symchk /im symbols.lst /s srv*X:\symbols\*http://msdl.microsoft.com/download/symbols /od
    4. 无论你喜欢什么(从X:\ symbols复制符号)
    5. 参数是:

      • /id输入是转储文件
      • /om输出是一个清单文件
      • /im输入是清单文件
      • /s符号服务器
      • /od输出详细信息以查看问题

      Windows的所有符号

      可以使用相同的方法为您的操作系统下载所有符号。然后是步骤4的命令

      symchk /r /if %windir% /om symbols.lst
      

      参数是:

      • /r递归地
      • /if从文件(或目录,如果递归)输入