Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Предыдущая тема Следующая тема Перейти вниз

Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Kliment в Пт Авг 07, 2009 12:10 pm

Всем привет, может вопрос и тупой, но я честно говоря учил QBasic ишо в техникуме, и уже много успел забыть, да и не помню чтоб там такое можно было заделать.
avatar
Kliment

Сообщения : 23
Дата регистрации : 2009-08-05
Возраст : 33

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  tux в Пт Авг 07, 2009 3:09 pm

язык тут непричем, надо смотреть как это реализуется в системе, я точно незнаю, но предполагаю что должны быть какието API, которые могут делать процесс системным, либо запускать его как сервис
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Eric-S в Пт Авг 07, 2009 6:03 pm

А вопрос не тупой. А очень даже сложный.
Целые разбираловки идут о том, как в винде защитить процесс, а потом как его убить.

Я не помню способа. Когда-то читал, но не использовал. По этому забылось.
Надо гуглить.
Или узнавать у ребят, которые глубоко влезли в систему.

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

Но вообще, сначало должен быть вопрос.
"Как спрятать окно".
Если есть окно, то убить можно просто.

Но и тут есть хитрости. Например вешается второй процесс, который опять запускает прогу с окном.

А зачем тебе?
Вирус или антивирус пишешь?
Во всех других случаях, это не стоит мороки.

И даже вири с антивирями можно прибить!

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Kliment в Пт Авг 07, 2009 6:29 pm

Хочу написать программу, которая следит за здоровьем юзверя, тоесть полностью блокирует уравление компом и чтоб её нельзя было убить.... Просто я искал в нете подобную прогу, но она платная, и дибильная... Я ж хочу написать прогу которая бы реально следила за времинем которое проводишь за компом, и во время перерыва чтоб показывала видео упражнения для разминки.
avatar
Kliment

Сообщения : 23
Дата регистрации : 2009-08-05
Возраст : 33

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  DiG. GeRR в Пт Авг 07, 2009 8:34 pm

Кстати, я как раз пишу программу, в которой такая функция реализовывается. Если что, могу выложить отрывок исходников (хотя они и на си Smile ).

Короче. Документированных способов сделать это нет. Но это не значит, что сделать этого нельзя. Путь первый - извращения (которые, между прочим, иногда неплохо работают). Например, запускаешь два процесса одновременно, они следят друг за другом, когда юзер убивает один, второй запускает его снова. Тут есть несколько подводных камней - нужно, во первых, запускать процесс так, чтоб его нельзя было убить вроде как "Завершить дерево процессов", а во вторых следить, чтобы процесс именно РАБОТАЛ - в противном случае можно будет остановить оба процесса и спокойно их замочить.
Прикольный способ - обозвать процесс winlogon.exe. Smile Тогда туповатый диспетчер задач просто откажется его убивать. Но другие утилиты не побрезгуют, так что способ ненадежный. Еще один трюк против юзера только с task-managerom - назвать процесс svchost.exe (и пусть юзер думает, какой из пяти одинаковых процессов убивать Very Happy )

Путь второй. Более надежный - сплайсинг функции ZwTerminateProcess в ntdll либо (что предпочтительнее) ZwOpenProcess с флагом PROCESS_TERMINATE (ну и еще пары функций, если честно...) Именно этот способ я реализовал. В общем, информация тут: http://www.wasm.ru/article.php?article=apihook_1 (цикл статей, язык дельфи - для начала самое то). или просто в гугле. Для этог нужно знать асм (совсем чуть-чуть) ну и не кривые руки. Единственный минус - сплайсингу в принципе несложно противостоять и более-менее квалифицированный троян это умеет. Но все стандартные средства в ауте.

Путь третий - самый надежный, но и самый сложный. Для этого нужно писать свой драйвер и перехватывать функции в ядре. Я не думаю, что ты этим заинтересуешься Smile

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  DiG. GeRR в Пт Авг 07, 2009 8:45 pm

должны быть какието API, которые могут делать процесс системным, либо запускать его как сервис

в 9х была функция RegisterServiceProcess, которая запускала процесс с привилегиями сервиса, и ни увидеть, ни убить его через диспетчер задач было нельзя. В следующих версиях эту функцию убрали - в целях безопасности.


Хочу написать программу, которая следит за здоровьем юзверя
Не той дорогой идете, товарищи... Враг близко, прямо под кончиками пальцев... Very Happy Very Happy Very Happy http://www.insidepro.com/kk/055/055r.shtml

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Kliment в Пт Авг 07, 2009 10:27 pm

DiG. GeRR пишет:Кстати, я как раз пишу программу, в которой такая функция реализовывается. Если что, могу выложить отрывок исходников (хотя они и на си Smile ).

Короче. Документированных способов сделать это нет. Но это не значит, что сделать этого нельзя. Путь первый - извращения (которые, между прочим, иногда неплохо работают). Например, запускаешь два процесса одновременно, они следят друг за другом, когда юзер убивает один, второй запускает его снова. Тут есть несколько подводных камней - нужно, во первых, запускать процесс так, чтоб его нельзя было убить вроде как "Завершить дерево процессов", а во вторых следить, чтобы процесс именно РАБОТАЛ - в противном случае можно будет остановить оба процесса и спокойно их замочить.
Прикольный способ - обозвать процесс winlogon.exe. Smile Тогда туповатый диспетчер задач просто откажется его убивать. Но другие утилиты не побрезгуют, так что способ ненадежный. Еще один трюк против юзера только с task-managerom - назвать процесс svchost.exe (и пусть юзер думает, какой из пяти одинаковых процессов убивать Very Happy )

Путь второй. Более надежный - сплайсинг функции ZwTerminateProcess в ntdll либо (что предпочтительнее) ZwOpenProcess с флагом PROCESS_TERMINATE (ну и еще пары функций, если честно...) Именно этот способ я реализовал. В общем, информация тут: http://www.wasm.ru/article.php?article=apihook_1 (цикл статей, язык дельфи - для начала самое то). или просто в гугле. Для этог нужно знать асм (совсем чуть-чуть) ну и не кривые руки. Единственный минус - сплайсингу в принципе несложно противостоять и более-менее квалифицированный троян это умеет. Но все стандартные средства в ауте.

Путь третий - самый надежный, но и самый сложный. Для этого нужно писать свой драйвер и перехватывать функции в ядре. Я не думаю, что ты этим заинтересуешься Smile

Реально помог! пасиба! теперь буду копать в о всех этих направлениях. Отличный форум, так держать, быстрая помощь!
avatar
Kliment

Сообщения : 23
Дата регистрации : 2009-08-05
Возраст : 33

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Kliment в Пт Авг 07, 2009 10:27 pm

DiG. GeRR пишет:
должны быть какието API, которые могут делать процесс системным, либо запускать его как сервис

в 9х была функция RegisterServiceProcess, которая запускала процесс с привилегиями сервиса, и ни увидеть, ни убить его через диспетчер задач было нельзя. В следующих версиях эту функцию убрали - в целях безопасности.


Хочу написать программу, которая следит за здоровьем юзверя
Не той дорогой идете, товарищи... Враг близко, прямо под кончиками пальцев... Very Happy Very Happy Very Happy http://www.insidepro.com/kk/055/055r.shtml
ЧИТАЮ!
avatar
Kliment

Сообщения : 23
Дата регистрации : 2009-08-05
Возраст : 33

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Kliment в Пт Авг 07, 2009 10:44 pm

Соглашусь только с тем что мышь, не нужна особо сильно програмисту, но дизайнеру без неё никуда, я же дизайнер, програмист из меня пока очень слабый, по этому я тут, я вспоминаю, и учусь, скорее больше учусь.
Дизайнеру важно его здоровье, особенно мне, ибо траблы с позвоночником... хочу и себе и другим помочь... комп это зло, если много за ним сидишь!!!!!
avatar
Kliment

Сообщения : 23
Дата регистрации : 2009-08-05
Возраст : 33

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Eric-S в Сб Авг 08, 2009 7:00 am

DiG. GeRR пишет:Не той дорогой идете, товарищи... Враг близко, прямо под кончиками пальцев... :D :D :D http://www.insidepro.com/kk/055/055r.shtml

Ну это совершенно очевидно! Моя мыша валяется в ящике стола и аккумуляторы из неё выдернуты. Чтобы не разряжались.

Те кто начинал с dos'а или zbasic знают, что клава - лучший друг человека.
А хорошая клава, залог успеха.

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

В прочем это уже виноват сам юзер. Я только пару раз до такого состояния доходил. И то после 16 часов беспрерывного тарахтения.

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

Я сам задумывался над прогой, которая останавливала бы работу.
Но по сути она не нужна.
Она будет вызывать лишнее раздражение и желание её прибить.
А после того, как она станет неубиваемой начнутся проклятия в адрес идиота который её придумал.
Потом юзер ломится в реестр и грохает её нафиг из загрузки или сервисов. После чего перезагружается.

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

С другой стороны, можно сделать пакость другу. Или работникам фирмы, в которой ты админишь. А потом радостно потирать ручки слыша раздражонные вопли.

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

Если ты сделаешь её в виде неназойливого напоминания, с возможностью простого отключения для продолжения работы, то будет всё много цивильнее. И убережот твою прогу от немедленного удаления из системы.
А юзер может и задуматься: "может и правда сделать перерывчик?".

Тут уже надо смотреть в учебник психологии, а не справочник WINApi.
И не думаю, что програмер от десигнера отличается, наличием/отсутствием рефлекса немедленно избавится от мешающего раздражителя.

Однажды я наблюдал сценку, когда девушка, в течении нескольких часов, пыталась добится немного внимания от парня за компом.
"У?" "Чего?" "Сейчас!" "Подожди!" "сейчас!" "Чего?" "Э-э-э!" "Погоди!".
Я это слушал, потом мне надоело. Я пожалел девушку и на пальцах объяснил ей, что это бесполезно.
В итоге она села в уголочке и ещё через пару часов дождалась от приятеля:
"О! Маша привет! А ты когда пришла?"

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

С этой стороны, комп это враг всему живому.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Как заделать чтоб програму нельзя было убить как процесс... через Ctrl+Alt+Del

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения