|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
||||||
Скрыть процесс из диспетчера задач от пользователя25.02.2016, 17:58. Показов 30365. Ответов 53
Метки нет (Все метки)
На хабре описывается метод скрытия процесса из диспетчера задач от глаз пользователя, вот ссылка на статью:
Хочу реализовать тоже самое на C#. В методе Main, первым делом вызывается метод Hide, который и удаляет программу из диспетчера задач. Помогите реализовать метод Hide. Добавлено через 6 часов 57 минут Вот еще более простой способ нашел на forum.oszone.net
0
|
||||||
| 25.02.2016, 17:58 | |
|
Ответы с готовыми решениями:
53
Скрыть процесс с диспетчера задач Скрыть программу из вкладки 'приложения' диспетчера задач Скрыть процесс из диспетчера задач |
|
Ушел с форума
|
||
| 28.02.2016, 21:31 | ||
|
1
|
||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
|
| 28.02.2016, 21:46 | |
|
Constantius24, Алгоритм прост, в перехватчике NtQuerySystemInformation:
1 вызываете оригинальную NtQuerySystemInformation 2 проверяете чтобы NtQuerySystemInformation не вернула ошибки и SystemInformationClass была равна SystemProcessesAndThreadsInformation (5). 3 SystemInformation указывает на связный список структур SYSTEM_PROCESSES нужно пройтись по списку, найти свой процесс (структуру) и пропатчить NextEntryDelta предыдущего так чтоб он указывал не на нашу структуру а на следующую, выпилить в общей свой процесс из списка. (нужно только учесть что наша структура может быть в конце, в данном случае NextEntryDelta предыдущего обнуляем). Искать можно по имени (SYSTEM_PROCESSES.ProcessName.Buffer).
0
|
|
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
|||||||
| 29.02.2016, 10:23 [ТС] | |||||||
Во общем на данный момент картина ясна, осталось собрать это все воедино - как я это вижу: 1. C++ DLL с функцией Hook_NtQuerySystemInformation которая вызывает NtQuerySystemInformation и изменяет список процессов. 2. C# программа, которая внедряет эту DLL в процесс Taskmgr.exe 3. Подмена в Taskmgr.exe функции(адреса?) NtQuerySystemInformation на Hook_NtQuerySystemInformation.
0
|
|||||||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
||||
| 29.02.2016, 10:42 | ||||
|
Добавлено через 3 минуты Constantius24, да и кстати вам нужно будет две версии DLL иметь. Одна для 32-битного другая для 64-битного taskmgr'a.
2
|
||||
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
|
| 29.02.2016, 11:06 [ТС] | |
|
Значит так, я создал пустое решение HideProcess и добавил в него два пустых проекта - TestApp(C#) и Hide(С++).
TestApp обычная консольная программа, а в свойствах проекта Hide я выставил "Динамическая библиотека (.dll)". Что касается C# части - внедрение Hide.dll в Taskmgr.exe и подмена NtQuerySystemInformation на Hook_NtQuerySystemInformation то я буду использовать MinHook, думаю разберусь. Главный вопрос дня для меня сегодня это что делать в проекте Hide? На C++ я в универе, на первом курсе, лабы сдавал, помню сделал консольный калькулятор, долго парился со string, потом забросил - договорился с преподом на C# все делать. На данный момент мне кажется нужно создать Hide.cpp и в нем прописать функцию Hook_NtQuerySystemInformation. Можете мне скинуть пример такого файла, где функция просто вызывает стандартную реализацию NtQuerySystemInformation. Дальше я скомпилирую dll и займусь всей C# частью. После вернусь к Hook_ функции и доделаю её.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 29.02.2016, 11:11 | |
|
Constantius24, там по ссылке на библиотеку MinHook показано как делать. Посмотрите внимательно. Хук ставите в DllMain.
0
|
|
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
||||||
| 29.02.2016, 11:16 [ТС] | ||||||
|
Так, чтобы было понятно как все плохо:
https://msdn.microsoft.com/ru-... 85%29.aspx В мире .NET функция это метод и он имеет: модификатор доступа, возвращаемый тип, имя и аргументы. Смотрю я на C++ описание функции:
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 29.02.2016, 11:56 | |
|
0
|
|
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
|
| 01.03.2016, 10:15 [ТС] | |
|
Нашел готовую реализацию: http://www.sources.ru/cpp/faqs/29.htm
Правда там "NTAPI Hook_NtQuerySystemInformation(...", а у нас "NTSTATUS WINAPI NtQuerySystemInformation(" Как я понял скрывается процесс скрывается по ProcessID в котором и запущен этот код, т.е. мне нужно дополнительно передать id процесса из C# кода.
0
|
|
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
||||||
| 01.03.2016, 10:26 [ТС] | ||||||
|
Значит так, добавил файл Hide.cpp в "Файлы исходного кода" и написал такой код:
0
|
||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 01.03.2016, 12:51 | ||
|
Что-то мне подсказывает, что тут примерно тот-же случай.
0
|
||
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
|
| 01.03.2016, 13:15 [ТС] | |
|
aquaMakc, программа распаковывает большой массив информации пожатой с использованием препроцессоров. srep.exe, precomp.exe... 7z.exe удалось использовать в качестве обычной .dll, для других компонентов это невозможно. Процесс распаковки довольно длительный и если в это время будет закрыт один из исполняемых файлов, все придется удалять и начинать заного.
Ничего общего с окнами тут нет, речь идет о распаковки 60гб пожатых в 16гб. Без использования препроцессоров тут некуда, люди занимающиеся созданием репаков для игр в курсе.
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 01.03.2016, 13:29 | |
|
Constantius24, Мне кажется в таком случае лучше сообщить пользователю что-то типа "Идёт процесс распаковки. Пожалуйста не закрывайте ничего!" и отображать процесс работы, в идеале ещё и прогресс. Скрывать от пользователя выполняемые процессы - изначально неправильный шаг.
Добавлено через 2 минуты А если что-то пойдёт не так и процесс зависнет? Или пользователю понадобится всё-таки прекратить процесс работы? Я понимаю, что средний интеллект среднего пользователя не больше 80, но надо же учитывать и остальных.
0
|
|
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
||||||
| 02.03.2016, 15:45 [ТС] | ||||||
|
Мы отклонились от темы, как мне подключить SYSTEM_INFORMATION_CLASS ?
Добавлено через 22 часа 55 минут Судя по тому, что выдал гугл, SYSTEM_INFORMATION_CLASS это перечисление и его нужно самим собирать, значения берутся из документации: https://msdn.microsoft.com/en-... 24509.aspx Ладно, теперь код выглядит так:
Дальше я хочу просто вернуть результат стандартной реализации функции NtQuerySystemInformation. Добавлено через 19 минут Думаю дальнейшее обсуждение C++ части лучше выделить в отдельную тему, ибо это надолго.
0
|
||||||
|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
|
| 03.03.2016, 17:27 [ТС] | |
|
Удалось реализовать скрытие, правда для внедрения dll приходиться пользоваться сторонними .exe, еще и для каждой битности отдельный.
Сейчас, хук ставиться при каждом новом запуске диспетчера задач, т.е. приходиться бесконечно отслеживать его запуск. Есть ли возможность один раз в систему установить хук?
0
|
|
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
|
| 04.03.2016, 14:23 | |
|
Constantius24, через AppInit_DLLs к примеру. Будет внедрятся во все процессы в которых имеется в импорте User32.dll (в taskmgr имеется). Подробней у Рихтера (см. пункт - Внедрение DLL c использованием реестра). Ну и это не единственный способ через реестр либу прогрузить, щас уже не помню других.
1
|
|
|
Ушел с форума
|
|
| 04.03.2016, 14:26 | |
|
На всякий случай дополню: AppInit_DLLs не работает, если включен Secure Boot.
1
|
|
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
|
| 04.03.2016, 14:36 | |
|
Constantius24, ну и есть нюансы для x64 ОС, погуглите. Неоднократно на форумах обсуждалось.
Добавлено через 2 минуты Ну и конечно вам нужны права админа чтобы в HKLM писать. Добавлено через 7 минут Убежденный, кстати а если прав админа нет, то что в такой ситуации делать? В моем софте например перехватывается запуск процессов (сплайсинг). Но при отсутствии прав админа, taskmgr (и не только) может не explorer'ом быть запушен а системным процессом (комб. Ctrl+Shift+Esc к примеру). Пришлось цикл заводить для таких процессов.
0
|
|
|
Ушел с форума
|
||
| 04.03.2016, 15:04 | ||
|
Хуки можно ставить задолго до того, как процесс успеет что-нибудь нарисовать. Но этот способ не для слабонервных, одно неосторожное движение может отправить систему к праотцам. ![]() А вообще, можно же обычный хук SetWindowsHookEx поставить (например, WH_CBTHOOK) и ловить, ну скажем, событие смены активного окна. Как только окно сменилось - смотрим, что за процесс. Если нужный - быстренько делаем в него инжект.
0
|
||
|
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
|
|||
| 04.03.2016, 15:45 | |||
|
Добавлено через 14 минут
0
|
|||
| 04.03.2016, 15:45 | |
|
Помогаю со студенческими работами здесь
40
Скрыть процесс из диспетчера задач Возможно ли скрыть процесс от Диспетчера задач? Как скрыть процесс от диспетчера задач Скрыть процесс из диспетчера Скрыть из приложений диспетчера задач Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|