使用 WinDbg 分析转储文件

使用 WinDbg 分析转储文件

我被要求使用 windbg 探索转储文件(没有提供源文件)并从中提取一些信息:

  • 确定问题是什么(挂起/崩溃)
  • 什么模块导致挂起。
  • 挂起/崩溃的根本原因是什么。
  • 枚举注入到流程的所有公司模块
  • 枚举公司模块在流程中完成的所有挂钩

我唯一拥有的文件是这个 dmp 文件。我正在使用 Windows10 64 位。

我已经研究了一段时间了:

  1. 首先,我用.sympath.重新加载验证微软符号是否正在被加载。
  2. 然后我用.分析!-v创建该文件的分析。
  3. 通过本次分析,我发现了以下几点:

    a. 线程 7030 上发生 Break 指令异常 80000003

    b. 异常发生在 Microsoft Office 2010 的 PowerPoint 进程中。

    c. 异常发生在 CpupSyscallStub 方法上

    d.该模块是wow64cpu。

    e. 因为是 0x80000003 异常,所以表示手动生成了应用程序转储。

    f.我用过~命令查看进程中的线程列表。所有线程均已解冻。g. 但是 – 我使用了!逃跑并发现线程 7030 已运行超过 7 分钟,比进程中的其他线程运行的时间长得多。

    i. 所以这可能是挂起的情况。我不确定,因为我还猜测列表中的第一个线程是主线程,自然它可能有更多的处理时间。

    h. 根本原因可能是 EXCEPTION_CODE 键的值中设置的“一个或多个参数无效”。

    i. 使用~#应该给我导致异常的线程:

     .  0  Id: 5cf8.7030 Suspend: 0 Teb: 00000000`00c5b000 Unfrozen Start:
     *** ERROR: Symbol file could not be found.  Defaulted to export  symbols for POWERPNT.EXE -    POWERPNT+0x10c8 (00000000`2d7710c8)
     Priority: 0  Priority class: 32  Affinity: f
    

    j. 但是,调用-ecxr绘制:“Minidump 没有异常上下文”,所以我很困惑……

  4. 查找注射剂:

    a. 我使用过.hideinjectedcode 关闭现在希望分析-v会给我注入信息。但我得到的是相同的分析日志……

    b. 使用流明给了我一个进程中所有模块的列表。因此,注入的模块很可能是所有具有属性“CompanyName: ”的 14 个 DLL,也可能是注入公司可能是其合作伙伴的 2 个“OpenSSL Project”DLL。

    但我不太确定...

  5. 为了找到钩子函数,我尝试查看所有注入公司的 DLL 导入表以查找钩子函数,但查看了 6-7 个 DLL 后,我还是没有找到。所以我放弃了这种方法……

这里您可以找到 !analize 命令输出。

正如你所见,我确实在这次演练上投入了大量时间。但没有得出明确的结论。你的帮助将非常宝贵。

谢谢!!!

答案1

首先尝试运行 CMD,然后 -
南卡罗来纳州用于服务控制命令
系统信息 - 列出系统配置

查看输出内容,看看是否有导致崩溃的内容

相关内容