Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Запрет на закрытие программы(процесса) Добавлено: 09.08.08 05:52  

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

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 $Костян



ICQ: 448495665 

Вопросов: 11
Ответов: 33
 Профиль | | #1 Добавлено: 09.08.08 10:04
Помниться, я обозвал свой процесс winlogon.exe и диспетчер задач не мог завершить его :)
но этого явно не достаточно :)

Ответить

Номер ответа: 2
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #2
Добавлено: 09.08.08 10:35
1. Написать драйвер. Пожалуй, самый действенный способ, но и сложный.
2. Написать библиотеку, которая будет инжектиться во все процессы и хукать TerminateProcess, DebugExitProcess и т.п.
3. Создать второй процесс. Процессы будут следить за состоянием друг-друга и запускать соответствующий, если тот завершен. Ну, естественно, надо хранить данные о состоянии главного процесса.

Ответить

Номер ответа: 3
Автор ответа:
 engis



Вопросов: 3
Ответов: 6
 Профиль | | #3 Добавлено: 09.08.08 15:33

2. Написать библиотеку, которая будет инжектиться во все процессы и хукать TerminateProcess, DebugExitProcess и т.п.
3. Создать второй процесс. Процессы будут следить за состоянием друг-друга и запускать соответствующий, если тот завершен. Ну, естественно, надо хранить данные о состоянии главного процесса

Интересные идеи, спасибо, может что ещё можно придумать?

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 09.08.08 18:22
Для непривилегированного пользователя можно запретить запуск менеджера процессов в реестре.

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 09.08.08 18:52
Проще всего, действительно, обзывать процесс winlogon.exe итп.. и при запуске проверять, чтобы прога именно так называлась...

Ответить

Номер ответа: 6
Автор ответа:
 engis



Вопросов: 3
Ответов: 6
 Профиль | | #6 Добавлено: 09.08.08 19:32
Дык смысл в том что бы процесс не закрыли, поискал инфу, кое что нашёл в CreateProcess, в качестве одного из параметров там передается PSFCURITY_ATTRIBUTES psaProcess, в книге рихтера поглядел такую инфу

Объекты ядра можно защитить дескриптором защиты (security descriptor), который описывает, кто создал объект и кто имеет права на доступ к нему. Дескрипторы защиты обычно используют при написании серверных приложений; создавая клиентское приложение, Вы можете игнорировать это свойство объектов ядра.

Хотя структура называется SECURITY__ATTRIBUTES, лишь один cc элемент имеет отношение к защите — lpSecuntyDescnptor. Если надо ограничить доступ к созданному Вами объекту ядра, создайте дескриптор защиты и инициализируйте структуру SECURITY_ATTRIBUTES


т.е если я правильно понял, это может помочь? создать процесс с заранее определенными "правами"

Ответить

Номер ответа: 7
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #7
Добавлено: 09.08.08 19:59
мда... я тест создавал... могу дать пару советов насчет безопасности:
1) создать журнал - это дас возможность проверять сколько человек раз прошел тест, даж если он умудрился хакерским способом его закрыть, то его вычислят! журнал нужно хранить на сервере, т.е. чтоб пользователь не мог до него добраться!
2) зачем защищать процесс? что за бред? ОТКЛЮЧИТЕ диспетчер задач! нашел в записях так что проверьте!
'блокировка ctrl + alt + del:
FileOpen(1, "C:\windows\system32\taskmgr.exe", OpenMode.Binary)
'отмена:
FileClose(1) 'или закрыть прогу

3) запретить пользователю закрыть программу по нажатию Alt + F4

и вобще для чего вам тест нужен? если для работы по локальной сети то вам может быть мой подойдет =) правда были споры насчет оформления, но если подойдет то могу исправить =)
ссылка: http://kbyte.ru/service/redirect.aspx?url=http%3a%2f%2fkingly.ifolder.ru%2f7029065
размер на сервере: 1.2мб
пароль для скачки: 321654987
стандартный пароль к серверу: 321654987

Ответить

Номер ответа: 8
Автор ответа:
 engis



Вопросов: 3
Ответов: 6
 Профиль | | #8 Добавлено: 09.08.08 20:33
Да нет, единственное что подойдет как выясняется это сделать запрет на закрытие процесса, т.к у меня не совсем "программа для тестов" просто что то вроде неё, и у пользователя я не могу не чего блокировать, удалять и т.д, мне важно что бы процесс жил пока не "подойду" сам :)

Ответить

Номер ответа: 9
Автор ответа:
 engis



Вопросов: 3
Ответов: 6
 Профиль | | #9 Добавлено: 09.08.08 22:07
Ещё вопрос небольшой, как можно запустить приложение не от имени пользователя, а скажем от SYSTEM? я в принципе то что предложили выше подходит, хоть что то

Ответить

Номер ответа: 10
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #10
Добавлено: 10.08.08 01:13
Запустить от имени системы можно в твоем случае только через драйвер, либо по старинке через Планировщик, если эта дырка еще есть. А с блокировкой диспетчера это все фигня. У меня, например, вместо него Process Explorer от Руссиновича. Идеальный способ в таком случае - инжект библиотеки в процессы.

Ответить

Номер ответа: 11
Автор ответа:
 engis



Вопросов: 3
Ответов: 6
 Профиль | | #11 Добавлено: 10.08.08 01:32
Понятно, спасибо

Ответить

Номер ответа: 12
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #12 Добавлено: 10.08.08 15:48
Запустить от имени системы можно в твоем случае только через драйвер, либо по старинке через Планировщик, если эта дырка еще есть
есть и вторая дырка, через скринсейвер, но думаю, такой способ не подойдет.

Ответить

Номер ответа: 13
Автор ответа:
 RomAshKo



ICQ: 416844272 

Вопросов: 6
Ответов: 18
 Web-сайт: http://my.mail.ru/mail/roma_komlev/
 Профиль | | #13
Добавлено: 20.03.09 08:00
__Pavel__То, что программу нельзя закрыть через процесс это факт, но я её убрал из панели задач, а на крестик код написал, КАК МНЕ ЕЁ ВЫКЛЮЧИТЬ??? Подскажите как сделать горячую клавишу, которая будет закрывать приложение?

Ответить

Номер ответа: 14
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #14
Добавлено: 20.03.09 16:52
очень просто... создаете глобальную переменную, например
  1. Public pub_Exit As Boolean

и если ВЫ хотите закрыть приложение, то записываете туда True, а в коде при выходе проверяете, если pub_Exit = True, то выход, иначе запрет... вот и все :)
P.S. Только не слишком балуйтесь с глобальными переменными... это не есть хорошо :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам