Перейти к содержимому

Фото
- - - - -

[C++] Маскировка процесса в Windows Task Manager


  • Вы не можете создать новую тему
  • Please log in to reply
12 ответов в этой теме

#1 Slash

Slash
  • Пользователь
  • 78 сообщений
  • Откуда:Estonia - Tallinn

Отправлено 04 августа 2005 - 11:46

У меня возник вопрос, каким образом можно сделать процесс невидимым в Windows Task Manager'е. Альтернативный вариант - сделать его защищённым, т.е. недоступным для команды End Process (типа как у некоторых антивирусников). Пишу на Visual C++ 6.0. Заранее благодарен всем откликнувшимся.
  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 04 августа 2005 - 11:50

Slash, никак :)

Добавлено в [mergetime]1123149034[/mergetime]
Или это не должно быть самостоятельное exe приложение (какой-нить Internet Explorer Extension или что-то в этом роде)
  • 0

#3 Slash

Slash
  • Пользователь
  • 78 сообщений
  • Откуда:Estonia - Tallinn

Отправлено 04 августа 2005 - 12:07

Ну всякие падлёные программы то маскируются. Причом я нашёл способ как вообще обнулить весь список в Task Manager'e через прямое обращение к его контролам и Child окнам. Только мне это не совсем подходит.
  • 0

#4 Warvick

Warvick
  • Пользователь
  • 411 сообщений
  • Откуда:Tallinn

Отправлено 04 августа 2005 - 13:24

Slash

Причом я нашёл способ как вообще обнулить весь список в Task Manager'e через прямое обращение к его контролам и Child окнам.

а что определённую "строку" удалить нельзя? Или у тебя ограничен список вызываемых методов?

альтернативный вариант - сделать его защищённым, т.е. недоступным для команды End Process (типа как у некоторых антивирусников)


тут копать только в сторону приоритетов, выдаваемых процессу операционной системой... например устанавливать прогу как сервис и как-то поиграться с настройками..
  • 0
Да, я такой!

#5 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 04 августа 2005 - 13:36

Перехватывать вызов NtQuerySystemInformation и при необходимости изменять возвращаемые ею данные.

http://www.hot.ee/voland/hidingru.txt
  • 0

#6 Slash

Slash
  • Пользователь
  • 78 сообщений
  • Откуда:Estonia - Tallinn

Отправлено 04 августа 2005 - 13:58

Slash

а что определённую "строку" удалить нельзя? Или у тебя ограничен список вызываемых методов?

Просмотреть сообщение

Для SysListView32 есть такая константа LVM_DELETECOLUMN (удаляет весь столбец), но как из этого List'а вытащить контент и потом удалить конкретную строку я не знаю. :( Я сегодня ещё поковыряю снова, хотя уверенности у меня всё меньше, что такой способ может сработать.
  • 0

#7 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 04 августа 2005 - 14:08

Slash, а что пишеш если не секрет?
  • 0

#8 -Z-

-Z-
  • Пользователь
  • 16 сообщений

Отправлено 04 августа 2005 - 14:10

Сервицы все равно отображаются в панели процессов.
Вообще для этой проблемы есть несколько вариантов решения.
Покопайтесь по сети, велосипеды давно изобретены.

Добавлено в [mergetime]1123157455[/mergetime]
А пишет он по ходу трояна, что быу денги воровать.
Хехе
  • 0
Пользуясь моментом, хочу передать привет друзьям, которые тоже пользуются «Моментом»

#9 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 04 августа 2005 - 14:12

Slash, да, и ещё. Ну спрячешся ты от таск мэенеджэра путём удаления строк, а как на счёт других процесс вьюверов?
  • 0

#10 Slash

Slash
  • Пользователь
  • 78 сообщений
  • Откуда:Estonia - Tallinn

Отправлено 04 августа 2005 - 14:29

Slash, а что пишеш если не секрет?

Просмотреть сообщение

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

Slash, да, и ещё. Ну спрячешся ты от таск мэенеджэра путём удаления строк, а как на счёт других процесс вьюверов?

Просмотреть сообщение

А мне другие не очень нужны. Понятное дело его можно будет через SystemInfo углядеть, даже если он как сервис будет. Ну чтоб хотя бы в Task Manager'e не было видно, ну или убить было бы нельзя.

Сообщение изменено: Slash (04 августа 2005 - 14:31 )

  • 0

#11 dronius

dronius
  • Пользователь
  • 153 сообщений

Отправлено 11 августа 2005 - 22:19

Ухх, по памяти.

Политкорректный способ: запуск процесса и изменение к нему доступа. Реализуется с помощью удаления соответствующих прав из ACL процесса. Документировано частично в MSDN , используется AddAccessDeniedAce, SetSecurityDescriptorDacl и.т.п.

Лобовой способ: перехват (hook) NtQuerySystemInformation и переход к следующему процессу при опросе собственного. В нете есть исходники. Процесс тем не менее можно косвенно обнаружить по его деятельности. Типа доступ к файлам, реестру итд. К тому же, процесс вроде видно на уровне ядра, подробнее не помню.

Элегантный способ: прицепление к чужому процессу.
1) создание удаленного потока (keywords: create remote thread) в существующем процессе. нужны соотв. права доступа.
2) прикрепление собственной библиотеки к существующему процессу посредством хуков (windows hooks). например на сообщения или еще чего
3) загрузка собственной библиотеки средствами опсистемы как плугина или расширяющего модуля. много способов, частично описано в интернете и MSDN
  • 0

#12 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 12 августа 2005 - 09:09

Исходник DLL, которая прячет процесс. :)

Прикрепленные файлы


  • 0

#13 Slash

Slash
  • Пользователь
  • 78 сообщений
  • Откуда:Estonia - Tallinn

Отправлено 16 августа 2005 - 09:58

Всем спасибо за ответы! Как разберусь - обязательно отпишусь, исходники тоже выложу, если кому будет интересно.
  • 0