Как скрыть процесс в диспетчере задач Windows 10

Обновлено: 22.11.2024

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

Update2: удаление ссылки на руткит. Почему-то этот пост выглядел негативно.

Мне любопытно, почему они убили его с самого начала? Я имею в виду, если (хе-хе) машина работает хорошо, зачем мне убивать процесс? Кроме того, что делает ваша программа? Это чтобы шпионить за людьми у этих машин? Я не могу придумать для этого законной причины, но, пожалуйста, просветите меня.

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

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

16 ответов 16

Не пытайтесь предотвратить его убийство — у вас ничего не получится. Вместо этого сделайте так, чтобы он регулярно звонил домой в веб-сервис. Когда веб-сервис замечает, что клиент «молчит», он может пропинговать машину, чтобы узнать, не является ли это просто проблемой перезагрузки, и отправить электронное письмо менеджеру (или кому-то еще), чтобы наказать того, кто убил процесс.

+100, изначально я хотел сделать то, что хотел сделать первоначальный автор, но это звучит как отличная идея.

Для этого нет поддерживаемого способа. Список процессов можно прочитать на любом уровне привилегий. Если вы надеялись скрыть процесс даже от администраторов, то это вдвойне не поддерживается.

Чтобы это заработало, вам потребуется написать руткит режима ядра для перехвата вызовов NtQuerySystemInformation, чтобы информационный класс SystemProcessInformation не отображал ваш скрытый процесс.

Безопасно перехватывать системные вызовы очень сложно, и 64-разрядные ядра Windows делают все возможное, чтобы предотвратить это: попытка изменить таблицу системных вызовов мгновенно приводит к появлению синего экрана. На этих платформах будет очень сложно

Вот пример руткита, который пытается сделать что-то подобное (и имеет несколько серьезных проблем).

Если вы хотите запретить пользователям завершать процесс из диспетчера задач, вы можете просто использовать дескриптор безопасности для процесса, чтобы запретить доступ к завершению для всех. Технически администраторы все еще могут убить процесс, взяв на себя ответственность за процесс и сбросив DACL, но нет интерфейса для выполнения любой из этих операций из диспетчера задач. Однако Process Explorer может иметь к нему интерфейс.

При запуске процесса используйте SetKernelObjectSecurity с DACL_SECURITY_INFORMATION, используя текущий дескриптор процесса. Задайте DACL без списков ACL. Это запретит доступ всем, включая тех, кто пытается завершить ваш процесс с помощью диспетчера задач.

Вот пример, который также меняет владельца процесса:

К сожалению, это не кажется эффективным. Я все еще могу закрыть процесс (хотя и не как пользователь с ограниченными правами). Возможно, диспетчер задач берет на себя ответственность или использует какую-то другую привилегию, чтобы убить процесс? Кажется, я помню, что это работало в предыдущих версиях Windows (я тестировал 2003), но могу ошибаться.

Я пытался сделать это в образце приложения, но, похоже, это не дало никакого эффекта (хотя все вызовы были успешными). Ненавижу это говорить, но можете ли вы дать ссылку на какой-нибудь код, который это делает?

Если вы используете assert(), код завершится ошибкой, когда будет определен NDEBUG (этот макрос ничего не определяет, когда он определен). assert() не заменяет проверку ошибок.

@xiaomao — я предоставил фрагмент кода, иллюстрирующий использование соответствующих API. Существует множество различных возможных стратегий обработки ошибок, добавление чего-то более сложного запутало бы код. assert() делает мою мысль ясной, в чем и была суть; он не предназначался для вставки в произвольную кодовую базу без понимания. Кроме того, вы, безусловно, можете использовать заголовки, которые принудительно используют assert() во всех сборках.

Я надеюсь, что вы не сможете.

Обновление: учитывая сценарий, я думаю, что вам, вероятно, будет лучше запустить его под другой учетной записью администратора. Это может помочь предупредить людей о том, что они не должны завершать процесс.

В качестве альтернативы вы можете написать небольшую утилиту "проверки", которая проверяет, запущено ли приложение, а если нет, то автоматически запускает его. Затем добавьте код в приложение, чтобы проверить наличие утилиты «checker», которая делает то же самое. Таким образом, если один завершается, другой запускает его обратно. Кажется, это делают вирусы, и это работает довольно эффективно.

Написать драйвер. Вы можете использовать ObRegisterCallbacks для регистрации уведомления о доступе к объекту процесса. Возвращайте STATUS_ACCESS_DENIED, если DesiredAccess содержит права доступа, которые вам не нравятся, например завершение процесса или запись в память процесса.

Если вам просто нужно замаскировать процесс, а не скрывать его полностью, вы можете переименовать его в winlogon.exe или svchost.exe, и он, скорее всего, будет проигнорирован пользователями. Но, как упомянул Серхио, это безопасность из-за неизвестности, и у нее плохая репутация не просто так.

Предотвратить завершение процесса пользователями — еще одна трудность, если у них есть соответствующие привилегии. Единственный метод, который я знаю, - это иметь несколько процессов, которые наблюдают друг за другом и перезапускают любой отслеживаемый процесс, который был убит. Опять же, это идет по сомнительному пути.

Ненавижу это говорить, но, поскольку у пользователей есть права администратора, лучше всего скрыть процесс. Однако будьте осторожны: антивирусное программное обеспечение может расценить это как вредоносное поведение и просто заблокировать программу.

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

А как насчет tasklist.exe, taskkill.exe или ProcessMonitor? Таким образом, простое предотвращение диспетчера задач не является хорошим способом предотвратить закрытие процесса.

Нет простого или поддерживаемого способа сделать это. Даже если вы написали для этого руткит, его очень легко сломать будущим обновлением, которое было сделано, чтобы закрыть эту дыру. Я бы еще раз проверил, хотите ли вы это сделать.

Как упоминалось выше, лучший способ — это 2 задачи, которые контролируют друг друга. Я понимаю, что вы не хотите тратить ЦП впустую, поэтому лучше всего установить событие между задачами, которое будет запускаться при закрытии одной из них.

Я не совсем уверен, как настроить хук, но тогда вы не используете цикл while, который тратит ресурсы ЦП.

Многие люди могут знать, как это сделать, но просто не будут публиковать это здесь. Очень опасно размещать вредоносный код в Интернете. Кто знает, что вы можете быть в опасности. Спросите у какого-нибудь компьютерного инженера. Однако я дам вам структуру программы.

Просто вставьте dll вашей программы в explorer.exe.

Ваш процесс не будет отображаться просто потому, что он запущен не как программа, а в программе (explorer.exe). Пользователь просто не увидит процесс, даже если воспользуется любым диспетчером задач.

Приходилось ли вам писать сервис? Таким образом, служба работает как локальная система, а приложение работает в контексте пользователя, и служба может гарантировать, что все по-прежнему выполняется так, как необходимо, а приложение является просто интерфейсом для этой службы. Уничтожение приложения просто приведет к тому, что пользователь не увидит никаких уведомлений, значка на панели задач и т. д., но служба по-прежнему будет выполнять свою работу.

После запуска от имени пользователя с ограниченными правами я не могу убить его из диспетчера задач, только как администратор.
Я оставил кнопку X, чтобы закрыть ее без администратора, но ее также можно удалить.

Вариант Powershell:

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

Я знаю, что этот вопрос устарел, но некоторое время назад я ответил на повторяющийся вопрос, который содержит некоторую полезную информацию, которой здесь нет, поэтому я решил дать ссылку на него. См. Мой ответ на повторяющийся вопрос. Кроме того, если ваша истинная цель - помешать пользователям убить процесс, то то, что я знаю, работало очень легко, хотя это немного хакерски, и я не знаю, работает ли это все еще, просто назовите ваше приложение lsass.exe и диспетчер задач не позволит даже администратору закрыть процесс. для этого метода не имеет значения, какой пользователь запустил процесс или где исполняемый файл находится в файловой системе, кажется, что Windows просто проверяет, назван ли процесс так, а затем не позволяет завершить его.

Обновление: я только что попытался проделать трюк с lsass.exe в Windows 7, и, похоже, он был исправлен, но я предполагаю, что он все еще работает в Windows XP и, возможно, даже в более ранних пакетах обновлений версий выше XP. Несмотря на то, что на момент написания этой статьи это уже не работает, я все равно решил включить это в качестве забавного факта.

чтобы предотвратить окончательное уничтожение процесса, первое, что должен сделать процесс, это вызвать 'atexit()', а функция atexit() запустить процесс

Связано

Связанные

Горячие вопросы о сети

Чтобы подписаться на этот RSS-канал, скопируйте и вставьте этот URL-адрес в программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.18.41718

В диспетчере задач Windows снимите флажок "Процессы от всех пользователей"
Не совсем уверен, что это то, что вы ищете, НО

Да, вы можете это сделать, и на YouTube есть видео, которые могут вам помочь

Агуро, это очень помогло. нет!
Как насчет того, чтобы дать нам несколько ссылок.
@ГиллГарри; кто-нибудь заглянет с советом вдобавок к моему

lol Прошло уже много месяцев, но я увидел, что на YouTube
там приложение фокус фокуса, которое может это сделать

Агуро, либо помоги, либо бан на 30 дней

ОП говорит о СПИСОК в ДИСПЕТЧЕРЕ ЗАДАЧ, Hocus Focus, похоже, не делает этого.

Это можно сделать, ПРОГРАММИРУЯ, чтобы приложение НЕ отображалось (код см. по этой ССЫЛКЕ), но я не думаю, что существует какое-либо «дополнение», которое будет выполнять эту функцию для любого приложения?

Если вы заинтересованы в том, чтобы скрыть что-то вроде кейлоггера, когда дети используют компьютер, могут быть способы запретить им использовать диспетчер задач с помощью ограничений на идентификатор, но есть ли альтернативные программы ТМ, которые будут работать?

Могу я спросить, что и почему вы хотите скрыть?

Если я неправильно понял, скажите, пожалуйста

это изображение, когда я использую эту программу с запущенным, но скрытым firefox

и это когда firefox не скрыт

Редактировать: я согласен, что я неправильно написал имя, это фокус-покус. (если это вас разозлило)

С веб-страницы не показалось, что в ТМ что-то спрятано? Он по-прежнему отображается на вкладке «Процесс»? Если нет, то, я думаю, это сработает?

В зависимости от того, что хотел сделать OP, это все равно может не работать, поскольку HP можно открыть и сделать приложение видимым? Я думаю, что OP нужна программа, которую можно было бы запустить, чтобы сделать процесс невидимым, а затем закрыть приложение.

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

Привет всем
Спасибо за все ваши ценные советы.
На самом деле я купил ноутбук для моей дочери. Я установил в нее программу родительского контроля, чтобы контролировать ее действия. Ранее я пробовал учетную запись с ограниченным доступом. но когда она попросила, я дал ей доступ к учетной записи администратора. Мне удалось удалить программное обеспечение для родительского контроля из ДОБАВИТЬ / УДАЛИТЬ с помощью утилиты очистки установки Microsoft. также я сделал папку приложения в программных файлах ультра скрытой с помощью команды attrib +h +s. Мне каким-то образом удалось скрыть его и от запуска msconfig, и он по-прежнему хорошо работает при запуске. Теперь единственное место, где он отображается, — это вкладка «Процессы» диспетчера задач, и отсюда его можно очень легко найти и завершить.
Вот почему я хочу скрыть свой процесс на вкладке процессов диспетчера задач.

Мне понравилась идея ispalten скрыть кейлоггер, чтобы следить за действиями детей.

Но моя проблема все еще существует. как я могу скрыть процесс?

Я попробовал программу "Hide Wizard", которая в этом смысле работает очень хорошо. Он может отлично скрывать процессы от диспетчера задач. Но это немного дорого.

Поэтому хочется попробовать что-нибудь еще перед покупкой.

Я не знаю ВБ. Поэтому я не могу использовать визуальный базовый метод. Итак, пользователи VB говорят, что это работает хорошо.
Кто-нибудь знает, что если кто-то вроде меня, ничего не знающий о VB, может как-то использовать этот метод с подробными пошаговыми инструкциями?

Контентидос

Как найти скрытые задачи?

Вы можете просмотреть скрытые задачи, если в меню "Вид" выбран параметр "Показать скрытые задачи". Чтобы сделать задачу скрытой, установите флажок «Скрыть» на вкладке «Общие» диалогового окна «Свойства задачи» или «Создать задачу».

Как показать скрытые задачи в диспетчере задач?

Оба инструмента показывают список скрытых процессов, запущенных на компьютере, но делают это по-разному. Нажмите одновременно клавиши «Ctrl», «Alt» и «Delete» на клавиатуре. Убедитесь, что в меню «Параметры» активирована опция «Всегда видим». В диспетчере задач Windows нажмите «Процессы».

Как увидеть, что работает в фоновом режиме?

Откройте «Настройки» > «Параметры разработчика» и найдите «Запущенные службы» или «Процессы, статистика» в зависимости от вашей версии Android. При запуске служб в Android 6.0 Marshmallow и более поздних версиях вверху отображается текущий статус оперативной памяти, а внизу — список приложений и связанных с ними процессов и служб.

Как узнать, какие программы работают в фоновом режиме Windows 10?

Перейдите в меню "Пуск" и выберите "Настройки" > "Конфиденциальность" > "Фоновые приложения". В разделе Фоновые приложения убедитесь, что параметр Разрешить приложениям работать в фоновом режиме включен. В разделе Выберите, какие приложения могут работать в фоновом режиме, включите или выключите настройки отдельных приложений и служб.

Как найти скрытый PID?

К вопросу о том, не видит ли кто-то идентификаторы PID. Чтобы увидеть номера PID в диспетчере задач, сначала CTRL-SHIFT+ESC вызовет диспетчер задач (это быстрее, чем ctrl-alt-delete). PID — это второй элемент в списке столбцов, которые вы можете выбрать.

Можно ли скрыть процесс от диспетчера задач?

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

Можно ли скрыть процесс от диспетчера задач?

Вы можете отобразить скрытые процессы в диспетчере задач Windows. Изображение предоставлено: Microsoft, Inc. Чтобы открыть диспетчер задач Windows, введите диспетчер задач в функцию поиска Windows 8 и выберите приложение диспетчера задач или нажмите Ctrl-Shift-Esc. … Просмотрите раздел «Фоновые процессы», чтобы найти скрытые процессы.

Может ли вирус скрыться от диспетчера задач?

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

Должны ли приложения работать в фоновом режиме?

Большинство популярных приложений по умолчанию работают в фоновом режиме. Фоновые данные можно использовать, даже когда ваше устройство находится в режиме ожидания (с выключенным экраном), так как эти приложения постоянно проверяют свои серверы через Интернет на наличие всевозможных обновлений и уведомлений.

Как узнать, какие приложения запущены?

Затем перейдите в «Настройки» > «Параметры разработчика» > «Процессы» (или «Настройки» > «Система» > «Параметры разработчика» > «Запущенные службы»). Здесь вы можете просмотреть, какие процессы запущены, используемую и доступную оперативную память и какие приложения ее используют.

Довольно часто вы можете столкнуться с программным обеспечением, которое не обязательно должно находиться на панели задач или отображаться на панели задач в свернутом виде. Его можно настроить на автозапуск всякий раз, когда загружается Windows, но нет способа скрыть его от появления на панели задач или в области уведомлений, не каждая программа, которая находится в вашем трее, должна иметь там значок. В настройках программы, вероятно, не будет полезной опции, поэтому вы в значительной степени застряли с ней. Если вы из тех, кто любит содержать свой рабочий стол в чистоте и не загромождать его, это немного расстраивает.

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

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

<р>1. Вне поля зрения

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

<р>2. ВинРАП

<р>3. Скрыть панель задач

Taskbar Hide — это программа, которая не только может скрывать открытые окна с рабочего стола, но и имеет отдельную вкладку, где вы можете скрыть или отобразить любое количество значков на панели задач. Также есть возможность полностью скрыть часы, панель задач, панель задач и кнопку «Пуск».Сами окна можно полностью скрыть из поля зрения или свернуть на панель задач с помощью настраиваемых горячих клавиш, а иконку панели задач скрыть в трее можно заблокировать от несанкционированных изменений с помощью пароля. Хотя программа бесплатна для использования, при каждом ее запуске появляется всплывающее окно с напоминанием о пожертвовании, что может раздражать.

<р>4. Поднос!

Пока лоток! не имеет более полезных опций для скрытности или сокрытия следов программных окон, таких как горячие клавиши или защита паролем, у него есть возможность скрывать или отображать отдельные значки в области уведомлений практически для любого приложения, которое размещает значок там. Ценное дополнение, если какая-либо запущенная программа помещает значок в трей, а вы не хотите, чтобы он отображался. Это доступно в меню «Правка» -> «Значки оболочки». Одинаковые окна можно сгруппировать для массового скрытия, а также есть возможность профилирования для настройки дополнительных параметров для каждого окна. Удобное быстрое свертывание позволит вам щелкнуть правой кнопкой мыши по кнопкам закрытия, свертывания и максимизации окна для мгновенного свертывания. Лоток это! также является портативным.

Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.

Вопрос:

Вопрос

Диспетчер задач показывает использование моего диска как 100 %, но ни один из перечисленных процессов не использует более 0,1 МБ/с. Как я могу сделать так, чтобы все процессы отображались в диспетчере задач, чтобы я мог идентифицировать нарушающие процессы?

Примечание. Я НЕ ищу ответы, подобные приведенному ниже, поскольку ни одна из этих рекомендаций мне не подошла. Я ТОЛЬКО спрашиваю, как заставить все процессы отображаться в диспетчере задач, чтобы я мог сам найти проблему, а НЕ список распространенных причин 100% использования диска.

Все ответы

К сожалению, это не проблема разработки (даже если она была разработана). Вот подходящий форум.

Есть некоторые вещи, которые вы должны помнить здесь.

Диспетчер задач показывает csrss.exe как критический системный процесс, lsass.exe как еще один критический системный процесс, msmpeng.exe как процесс защиты от вредоносных программ, все службы. Кроме того, он также показывает наиболее важные из системных процессов, процесс бездействия системы, системные и системные прерывания. Разве это не идеальные цели для укрытия? Однако Microsoft не делает этого для основных процессов Windows.

Итак, какова вероятность того, что существует возможность скрывать процессы, Microsoft не скрывает критические системные процессы, но удобно скрывает процесс, который занимает место на вашем жестком диске?

Еще один момент, о котором следует помнить, — вредоносное ПО и вызванная им гонка вооружений. Если процесс может скрыть себя, это будет означать, что вредоносное ПО сможет скрыть себя. В ответ на это программам защиты от вредоносных программ потребуется способ найти вредоносное ПО в любом случае, и поэтому должен существовать супер-специальный способ получить список всех процессов. Это может привести к тому, что люди попытаются создать сверхскрытые процессы или все будут использовать те же методы, что и анти-вредоносное ПО, чтобы составить список всех процессов.

Поэтому, к сожалению, нужно узнать, что отчеты об использовании диска не являются точными на 100%, и лучшее, что вы можете попробовать, это просто закрыть все приложения, чтобы посмотреть, исчезнет ли проблема.

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

Читайте также: