【问题标题】:Attaching a debugger to Services.exe in Windows 8.1在 Windows 8.1 中将调试器附加到 Services.exe
【发布时间】:2015-11-18 14:48:04
【问题描述】:

我尝试在 Windows 8.1 中将调试器附加到 Services.exe,但我始终收到“访问被拒绝”。即使在确保 WinDbg 以“管理员身份”运行(以提升方式启动)之后也是如此。

只是为了测试,我尝试从任务管理器创建一个内存转储文件,但我得到了同样的错误。

我还尝试使用来自 Sysinternals (ProcExp) 的 Process Explorer 创建转储,但遇到了同样的错误。

上图为services.exe所在的进程树(使用procexp查看)。有趣的是,我们可以为 wininit.exe 和 svchost.exe 创建转储文件,但不能为 services.exe 创建转储文件。

我让一些同事在 Windows 7 上对此进行了测试,它运行良好。对于那些使用 Windows 8.1 的用户 - 他们的行为与我相同。

我想知道这是否是 Windows 8.1 的变化。我希望有人可以评论是否有办法使我们能够将调试器附加到 services.exe。

【问题讨论】:

  • 用户名列是 NT AUTHORITY\SYSTEM 对于我的问题中显示的所有三个进程。即使在非侵入模式下也无法附加 WinDBG。
  • 您可以尝试使用psexec -s作为系统启动
  • 好的,我在 Windows8 (6.2) 中测试过,它可以工作。在 8.1 (6.3) 中,它因访问被拒绝而失败。
  • @shiveshsuman - 抱歉,这是我最好的选择,但现在它已被确认且可重现,我会尝试在 defragtools.com 上 ping 用户。 Andrew Richards 或 Chad Beeder 通常反应灵敏,并且了解 WinDbg 的来龙去脉。
  • 我已经添加了一个答案。经过更多研究:事实证明,由于 services.exe 是受保护的进程,这是预期的行为 - 调试器也必须变成受保护的进程(这只能通过编辑 EPROCESS 块来使用涉及内核调试器的解决方法调试器进程)。

标签: windows debugging windows-8.1 windbg


【解决方案1】:

好的,感谢大家的贡献和 cmets。经过更多研究:事实证明,services.exe 是 Windows 8.1 中的受保护进程,因此无法直接运行。调试器也必须变成一个受保护的进程。一种方法是先使用内核调试器:

http://www.overclock.net/t/1300855/going-deep-dumping-the-memory-of-a-protected-process

【讨论】:

  • 能否请您包含链接文章的相关部分,以便即使链接已关闭,此答案仍然有用?谢谢。
  • 在 Windows 8.1+ 中,修改 EPROCESS 结构的 Protection 字段,如 Alex Ionescu 的文章 The Evolution of Protected Processes 中所述。例如,将调试器进程保护值改为0x61,使其成为WinTcb Protected Light进程,与csrss.exe和services.exe相同。
【解决方案2】:

假设你想调试 svchost.exe - 我猜你想调试服务。

一般svchost.exe 在其中托管多个服务。因此,首先,您应该在单个服务中运行您想要的服务。

多年来,我不必自己调试服务。但我记得使用这些链接寻求帮助:

一个。 How to debug Windows services with Windbg (MSDN Blog)

b. Debugging a Service Application (MSDN)

这些可以提供帮助 - 如果您还没有看过它们。

【讨论】:

  • 我真的对 svchost.exe 不感兴趣。我对调试某些特定专有服务的启动(启动失败)尝试很感兴趣。由于使用 gflags 的通常“图像文件执行选项”不起作用 - 我想将调试器附加到 services.exe,然后使用 WinDbg 中的 .childdbg 1 自动附加到子处理。在观察到 Windows 7 和 Windows 8.1 之间的异常行为后,能够将调试器附加到 services.exe 并且没有在网上找到任何关于该主题的资源,我想我可以讨论一下堆栈溢出问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2018-09-05
  • 2011-05-17
  • 2011-11-06
  • 1970-01-01
相关资源
最近更新 更多