|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.09.2007, 12:42 | #1 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
Защита окна своей проги
Поскольку уничтожать и закрыть можно практически любое окно
(для системных подойдёт WM_DESTROY но может привести к зависанию и глюков эксплорера), то как можно скрыть окно от глаз EnumWindowsWnd в callback-функции которой есть вызов GetWindowName или GetClassName, или сделать невозможным закрытие окна Закрытия можно сделать невозможным просто проигнорировав события WM_CLOSE или WM_DESTROY (вроде как), написав им другой обработчик, но если прога вдруг зависнет, а процесс скрыт, окно закрыть нельзя, то можно зависнуть систему, а это нежелательно поэтому лучше скрыть окно, как и процесс Если ли способы реализации подобного не в нулевом кольце(поскольку прога под юзером)?
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
26.09.2007, 12:50 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Скрыть окно можно например поставив в проекте перед созданием главной формы Application.ShowMainForm:=false или задать для окна координаты которые выходят за пределы экрана.
Вопрос остается один : если прога вдруг зависнет, а процесс скрыт, окно закрыть нельзя, то можно зависнуть систему Что делать? И кста чеэ юзер будет рулить EnumWindowsWnd? ему вред епроггерить не положено...
I'm learning to live...
|
26.09.2007, 13:06 | #3 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Цитата:
Кстати, зачем создавать окно, если его всё-равно надо скрыть? -- и вообще, а не пойти ли б вам на www.rootkit.com или хотя б в тему ниже
пыщь
Последний раз редактировалось JTG; 26.09.2007 в 13:11. |
|
26.09.2007, 13:17 | #4 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
хорошо, отвечаю подробно, я лишь обрубаю те концы за которые прогу можно завершить
Пока пользователь моей проги не кликнет на иконку на трее и не введёт правильный пароль к главному окну он доступ не получит Для продвинутых пользователей на время появления окна с вводом пароля блокируется вызов диспетчера (в отдельном потоке) Процесс все время скрыт, поэтому осталось лишь присутствие скрытых окон, которые можно обнаружить с помощью enumwindows от чего я и хочу защитить свои прогу либо не нахождением названия окна (думаю это можно сделать хуком) а лишь Id или если это возможно скрытием окна вообще в системе (если это возможно) теперь мысль понятна
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
26.09.2007, 13:27 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хочеш зашитить свою прогу от других прог?
I'm learning to live...
|
26.09.2007, 13:48 | #6 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
Да, поскольку, мне нужна надёжность
Поэтому на событии OnClose прога проверяет на наличие себя в автозапуске, чтобы даже если её удалили из реестра, но не завершили, она всё-равно запустилась бы вновь Так что насчёт способов?
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
26.09.2007, 14:10 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну вообще то даже 50% ты не защитишся от других прог (Субъективное мнение), т.е. захотят - закроют. Но мона сделать службишку которая будет тихо и незаметно проверять закрыта ли прога и если да запускать ее снова.
Ну и разное другое типа пропись проги в реестр, или закрытие неугодных прог, в общем что душа пожелает )
I'm learning to live...
Последний раз редактировалось Stilet; 26.09.2007 в 14:11. Причина: Добавлю что: |
26.09.2007, 19:33 | #8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
1. можно перехватывать функцию EnumWindows и FindWindow
2. Допустим тебя хотят завершить. ты это му несопротивляйся - просто сохрани состояние программы и запусти копию и закройся. Будет создаваться впечатление чо прога будет завершаться и сразу же запускаться |
27.09.2007, 10:27 | #9 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
Спасибо за совет, а я ради прикола пробовал
переписать обработчики этих событий у формы, с WM_CLOSE получилось, а с WM_DESTROY нет WM_SHOWWINDOW тоже не вышло поскольку эти методы ещё в TCustomWinForm определены, то override будет ошибкой, поэтому я просто во всех обработчиках прописал Код:
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Размер окна в зависимости от размера окна | Reverent | JavaScript, Ajax | 1 | 02.02.2008 15:49 |
Как сделать для своей проги скин? C++ Builder 6. | Dunhil | Помощь студентам | 1 | 30.12.2007 13:37 |
закрыть все дочерни окна, кроме главного окна | Worms | Общие вопросы Delphi | 2 | 03.12.2007 22:18 |
Как со своей проги запустить чужую | SeRhy | Помощь студентам | 5 | 04.11.2007 11:18 |
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? | dimonchuk | Общие вопросы Delphi | 1 | 11.08.2007 12:13 |