«Реверс-инженер» объясняет, является ли служба производительности Windows 11 от Microsoft шпионским ПО

Windows 11 Whesvc диагностика производительность реверс-инжиниринг Microsoft neowin.net

Узнайте правду о службе whesvc в Windows 11: реверс-инженер разобрал её код и выяснил, шпионит ли Microsoft за пользователями или нет.

Недостатки производительности Windows 11 в последние месяцы привлекли массу критики, которая усилилась после того, как пользователи обнаружили фоновую службу «Работоспособность Windows и оптимизированный интерфейс». Однако новое глубокое исследование этой службы показывает, что под капотом происходит гораздо больше, чем можно было бы предположить, исходя из её относительно простого назначения.

Специалист по реверс-инжинирингу Сюшэн Ли решил внимательнее изучить whesvc, службу, стоящую за «Работоспособностью Windows и оптимизированным интерфейсом», после того как ранее вирусное утверждение заявило, что Microsoft добавила службу, которая отслеживает информацию о ЦП, температуре и батарее, отправляя данные в компанию каждые 15 минут.

Как ранее объяснил инженер Microsoft Скотт Хансельман, на самом деле служба предназначена для сбора целевых диагностических данных о производительности, когда Windows обнаруживает медленное или вялое поведение. Собранные трассы хранятся локально и могут быть отправлены через «Центр отзывов». Расследование Ли в основном подтверждает это, но также показывает, что реализация Microsoft на удивление сложна.

Сама служба whesvc довольно мала. Интересная функциональность находится внутри windiag.dll, которая включает в себя скриптовый язык Lua 5.4.7. Microsoft также поставляет whesvc_assets.dll, содержащий 84 скомпилированных скрипта Lua, которые обрабатывают различные диагностические сценарии.

Вот здесь и начинается самое интересное. Ли обнаружил, что скриптовый движок предоставляет 79 нативных функций, предоставляя скриптам Microsoft доступ к удивительно широкому спектру возможностей Windows.

Например, служба может читать и изменять реестр Windows, выполнять произвольные файловые операции, создавать процессы и взаимодействовать с ними, запрашивать WMI (инструментарий управления Windows), собирать трассировки Event Tracing for Windows (ETW), проверять токены безопасности, получать информацию о питании и температуре, загружать символы, создавать файлы .cab и даже выполнять HTTP-запросы.

Также существует универсальный интерфейс внешних функций (FFI), позволяющий скриптам взаимодействовать с нативными DLL и различными дескрипторами Windows. Таким образом, на бумаге это делает базовый движок значительно более мощным, чем, казалось бы, необходимо для службы диагностики производительности.

Однако это не означает, что Microsoft тайно использует службу для манипулирования случайными файлами или записями реестра. Ли обнаружил, что поставляемые скрипты в основном используют эти возможности для довольно обыденных диагностических задач.

Функциональность реестра в основном используется для поддержания собственных счетчиков службы между перезапусками. Модуль информации о драйверах может изменять настройки верификатора драйверов Windows, хотя это ограничено определенной переменной среды и используется функцией мониторинга памяти. Ли предполагает, что это, возможно, самое инвазивное действие, которое выполняет whesvc.

Один скрипт использует её для запуска собственного инструмента Microsoft powercfg.exe и создания отчета «Изучение спящего режима». Другой путь вызывает wpr.exe для объединения трасс Windows Performance Recorder.

Сами диагностические скрипты также довольно сложны: служба может захватывать трассы, когда приложения перестают отвечать, отслеживать задержки ввода и сбои отображения, выявлять приложения, которые запускаются медленно, и обнаруживать службы, зависшие в состоянии ожидания. Её модули, связанные с питанием, могут исследовать чрезмерный расход батареи, определять, что помешало ПК перейти в спящий режим, и реагировать на устойчивое потребление энергии.

Например, модуль memory_handle_leak, как следует из названия, занимается диагностикой утечек памяти, отслеживая количество памяти и дескрипторов в течение нескольких интервалов и используя последовательные увеличения вместе с наклоном линейной регрессии, чтобы отличить потенциальную утечку памяти от нормального роста.

А модуль system_summary создает вышеупомянутую 900-секундную (15-минутную) сводку в формате JSON, но она хранится локально. Несмотря на то, что служба имеет сетевые возможности, Ли не нашел ни одного сценария, который бы фактически выполнял произвольные HTTP-запросы. Во всех 84 скриптах единственным идентифицированным URL является публичный сервер символов Microsoft, и сообщается, что эта функциональность отключена в обычных розничных установках Windows.

Следовательно, специалист по реверс-инжинирингу говорит, что он искал что-то подозрительное, но ничего не нашел. Служба не ведет тайную запись экрана, и её диагностические трассы не загружаются автоматически в Microsoft, как утверждалось в вирусных заявлениях.

По сути, Microsoft создала универсальный движок системной диагностики, работающий как SYSTEM, с возможностями от манипуляций с реестром и файлами до создания процессов и выполнения нативного кода. Поставляемые скрипты остаются в рамках диагностики производительности, но лежащий в основе механизм значительно более мощный, чем требуется для задачи. Но это также не означает, что это «шпионское ПО».

Вы можете ознакомиться с полным углубленным техническим анализом здесь в официальном блоге Сюшэна Ли.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:


Похожие новости: