2015-11-17 4 views
2

Я попытался подключить отладчик к Services.exe в Windows 8.1, но я последовательно получаю «Доступ запрещен». Это справедливо даже после того, как WinDbg был запущен «Как администратор» (был запущен с повышением).Присоединение отладчика к Services.exe в Windows 8.1

Только для тестирования я попытался создать файл дампа памяти из диспетчера задач, и я получаю ту же ошибку.

Я также попытался создать дамп с помощью Process Explorer из Sysinternals (ProcExp), и я получил ту же ошибку.

Here is the screenshot of services.exe it its process tree

На рисунке выше показано дерево процесса (если смотреть с помощью PROCEXP), в котором services.exe находится. Интересно, что мы можем создавать файлы дампа для wininit.exe и svchost.exe, но не для services.exe.

У меня было несколько коллег, проверяющих это на Windows 7, и оно отлично работает. Для тех, кто на Windows 8.1 - они получают то же поведение, что и я.

Мне интересно, изменилось ли это с Windows 8.1. Я надеюсь, что кто-то может прокомментировать, есть ли способ, чтобы мы могли подключить отладчик к services.exe.

+0

В Process Explorer, что отображается в столбце «Имя пользователя»? Можно ли подключить в неинвазивном режиме? –

+1

Столбец имени пользователя NT AUTHORITY \ SYSTEM для всех трех процессов, указанных в моем вопросе. Не удалось подключить WinDBG даже в неинвазивном режиме. –

+1

Вы можете попробовать запустить в качестве системы с помощью 'psexec -s' –

ответ

0

Учитывая, что вы хотите отлаживать svchost.exe - я предполагаю, что вы хотите отладить службу.

Обычно svchost.exe содержит несколько сервисов. Итак, сначала вы должны запустить только ваш ушибленный сервис в рамках одного сервиса.

Мне не нужно было отлаживать службу самостоятельно уже много лет. Но я помню, используя эти ссылки для справки:

a. How to debug Windows services with Windbg (MSDN Blog)

b. Debugging a Service Application (MSDN)

они могут помочь - если вы еще не посмотрели на них.

+0

Меня не интересует svchost.exe. Я заинтересован в попытке отладки для запуска (сбой при запуске) определенных специальных проприетарных сервисов. Поскольку обычная опция «Image File Execution Option» с использованием gflags не работала - я думал о прикреплении отладчика к services.exe, а затем автоматически привязывался к дочерней обработке с использованием .childdbg 1 в WinDbg. Наблюдая за аномальным поведением между Windows 7 и Windows 8.1, будучи в состоянии подключить отладчик к services.exe и не найти какой-либо ресурс в сети по этой теме, я подумал, что, возможно, обсужу это с переполнением стека. –

3

ОК, спасибо всем за ваши вклады и комментарии. После нескольких исследований: оказывается, что services.exe является защищенным процессом в Windows 8.1, и поэтому это не будет работать напрямую. Отладчик также должен быть превращен в защищенный процесс. Один из способов заключается в использовании отладчика ядра первый:

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

+0

Не могли бы вы включить соответствующие части связанной статьи, чтобы этот ответ оставался полезным, даже если ссылка не работает? Благодарю. –

+0

В Windows 8.1+ измените поле «Защита» структуры «EPROCESS», как описано в статье Алекса Ионеску [Эволюция защищенных процессов] (http://www.alex-ionescu.com/?p=97) , Например, изменение значения защиты процесса отладчика до 0x61 делает процесс WinTcb Protected Light таким же, как csrss.exe и services.exe. – eryksun