|
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
|
||||||
Скрыть процесс из диспетчера задач от пользователя25.02.2016, 17:58. Показов 29771. Ответов 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
Скрыть процесс из диспетчера задач Возможно ли скрыть процесс от Диспетчера задач? Как скрыть процесс от диспетчера задач Скрыть процесс из диспетчера Скрыть из приложений диспетчера задач Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|