Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как запустить программу невидимой для системы?
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
Glorius
Как запустить программу невидимой для системы? Чтобы в диспетчере задач на закладке "Приложения" моя программа была не видна.
Barmutik
Сделайте её сервисом .. если необходимо скрыть только на закладке Приложения...
Glorius
Цитата(Barmutik @ 25:06:2007, 10:24 ) *
Сделайте её сервисом .. если необходимо скрыть только на закладке Приложения...

А как это сделать?
Barmutik
Создавайте не обычное Windows приложение а service-приложение
Glorius
Цитата(Barmutik @ 25:06:2007, 18:29 ) *
Создавайте не обычное Windows приложение а service-приложение
А как это сделать в Builder?
Morpheus
Для: Glorius
Меню
New -> Other -> Sevice Application -> Ok
shisik
Может это уже и неактуально, но всё равно напишу. Вдруг, кому-то ещё понадобится...
Самый лучший способ невидимого запуска - это присоединение своей DLL к чужому процессу. Для этого нужно использовать функцию CreateRemoteThread, отличающуюся от CreateThread лишь первым параметром - HANDLE процесса, к которому мы хотим подключиться. HANDLE можно получить через ToolHelp32 - функции.
В функции этого потока (расположенной в EXE) нужно написать LoadLibrary с именем нашей DLL. А дальше пишем как обыкновенное приложение, где вместо входной функции main (WinMain) будет DllMain.
Всё. После завершения EXE, подключающего нашу DLL к другому процессу, DLL остаётся работать и уже никто и ничто не способно её обнаружить wink.gif
Жаль, таким способом нельзя к winlogon.exe подключаться sad.gif
Barmutik
Для: shisik

Насчёт никто это громко сказано .. все известные антивирусные\спайварные проги перехватывают эти команды и как минимум логируют такие действия .. так что при желании достаточно просто её найти.

Опять же перехват LoadLibrary даст возможность отследить какие библиотеки (не системные) груились в процесс и соотнеся этих два факта можно отследить несанкционированную работу чужого кода.
zubr
Согласен с Barmutik
Гораздо надежнее в таких случаях (имеется в виду не умение антивирусами определять подобные действия) это перехват API-функций, причем на уровне ядра (из драйвера). Но в любом случае для установки на компе подобной хрени потребуются привелегии админа в системе.
shisik
Цитата(Barmutik @ 29:08:2007, 07:06 )
Насчёт никто это громко сказано .. все известные антивирусные\спайварные проги перехватывают эти команды и как минимум логируют такие действия .. так что при желании достаточно просто её найти.

Какие такие действия? CreateRemoteThread? Так обычный CreateThread реализован в Win 2k через CreateRemoteThread(GetCurrentProcess(), ...). Они запарятся отлавливать и логировать все вызовы этой функции wink.gif
Кстати говоря, LoadLibrary это тоже касается, т.к. функция довольно широко применяется.
Цитата(zubr @ 29:08:2007, 08:49 )
Но в любом случае для установки на компе подобной хрени потребуются привелегии админа в системе.

К сожалению, большинство пользователей с этими самыми привилегиями и сидят wink.gif Мало кто утруждает себя созданием пользователей с ограниченными правами...

Хотя, про "никто и ничто" я действительно погорячился wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.