IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Перехват открытия файлов (https://www.imho.ws/showthread.php?t=46016)

DeToNaToR 14.12.2003 15:56

Перехват открытия файлов
 
Я пишу для школы программу для администратирования.
Точнее ее приходится писать.
Вначале через реестр настроил на открытие только необходимые прогрммы.

Но дети довольно умные, просекли в чем дело и просто переименовывают exe'шники игр в notepad.exe например и все у них работает.

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

Единственное чего не знаю, как перехватить запуск.

Способ проверять уже запущенные приложения не очень подходит.

P.S. пишу на дельфи

Кто знает, подскажите как реализовать это.
Спасибо!

melk 14.12.2003 18:15

Есть более простые способы запрета игр....
например вызов родителей в школу.....
а дети все равно любую защиту обойдут с помощью старших братьев - хакеров.

DeToNaToR 14.12.2003 18:22

Дети не обойдут защиту с помощью старших братьев.
Это школа интернат, в Израиле.
Дети тут живут и учатся. Раз в две недели выезжают домой.
Родители приезжают в школу только на собрания и все.
Редко, что кто-то приезжает из их родственников.

Запрет относится не только к играм но и к другим программам.

ZAHAL 14.12.2003 18:51

А игры какие уже установленные?По дефолту у них там типа C\Program Files\Game или наподобе.Можно запретить всю конкретную ветку.
Рано или поздно,любую заwиту обойдут.Но ето даже похвально,гордиться такими юными хацкерами надо!

DeToNaToR 14.12.2003 19:55

Нельзя играть в сетевые игры, нельзя использовать Kazaa, eMule и т.д.
Насчет взлома защиты этими детьми сомневаюсь, они просто не найдут что взломать.

ZAHAL 14.12.2003 20:49

Шо значит,всё нельзя?!Если низя,но очень хочется,то можно.
С ренеймом то справились.
А на все ети сетевые игры, Казаа, еМуле и т.д,ставьте шлюзы,стены и т.д.

DeToNaToR 14.12.2003 20:53

Задача уже конкретно стоит. Перехватить запуск приложения и если оно разрешено (а это будет несколькими методами) проверяться, то разрешить ее работу.
Зачем тему во флуд превращать.
Я ведь не прошу методы защиты от детей.
Четко и ясно н написал "Перехват открытия файлов".

V0iD 14.12.2003 21:37

Хук на WH_CBT

Сообщения:
HCBT_ACTIVATE - когда приложение активизировалось.
HCBT_CREATEWND - когда создано новое окно.

alexey_ma 14.12.2003 22:27

Точно. Можно еще попробовать поиграться с ShellHooks - HSHELL_WINDOWACTIVATED и HSHELL_WINDOWCREATED.
И еще есть хуки SetWinEventHook через IAccessible - что-то типа EVENT_OBJECT_CREATE и EVENT_OBJECT_SHOW. В этом случае можно обойтись без DLL. Правда все равно не представляю как это на дельфи сделать.

P.S. Eще можно попытаться мониторить процессы или перехвать вызов API CreateProcess

WestFOX 14.12.2003 22:40

Дети просто выгрузят твой софт или уберут его из автозагрузки :p

alexey_ma 15.12.2003 11:00

Можно программу спрятать от TaskManager.

V0iD 15.12.2003 17:48

Как они его уберут или выгрузят, если ни таск-менеджер не запустят, ни рег-едит? =)

Melkor 17.12.2003 23:20

1. насколько я помню есть уже готовые решения. можно попробовать использовать их...
2. как насчет подсчета контрольных сумм? о бишь MD5 как в волах?
3. какая система? в NT можно вроде системными способами обойтись..

DeToNaToR 18.12.2003 00:12

Melkor ,
1) а какие готовые решения существуют? Уверен, что они платные. А школа, где я работаю не в совке и тут иногда проверки бывают так что пиратский софт нельзя.
2) Это впринципе не важно. Главное что-бы открытие любого файла проходило через мою прогу. Определять буду по имя+размер. Этого достаточно. Да и потом вручную они уже размер exe'шников не сменят.
3) win98

2all
загрузка проги будет происходить не из startup folder и не из реестра
Тут дети вряд ли что-либо обнаружат

someone312002 18.12.2003 17:40

Цитата:

<кусь>так что пиратский софт нельзя.<кусь>
Я тоже не в (как ты выражаешься) совке. Только учти одну весчь: коль ты хочешь для школы создать прогу, которую потом и будешь пользоваться (заметь) в коммерческих интересах (ты ведь там работаешь), то у тебя должно быть официально купленная лицензия на, к примеру, Дельфи.
Продолжим. Коль скоро в школе есть комп. класс, то и операционки там тоже "куплены". Надеюсь, не 9х ... Коль так, то тебе прямая дорога на груп полиси для "клиентов" - траходром конечно и не для данного раздела обсуждение, но ОНО того стОит!!! Через эти груп полиси настраиваешь ДЛЯ КАЖДОГО пользователя экран, через который он может видеть и запускать лишь то, что ему ПОЛОЖЕНО!!! И никакого разрешения на инсталляцию прог!!! Забудь!!!

Всё. Если будут вопросы по ГП - пиши в другой раздел, чем могу - помогу!!!
УДАЧИ!!!

WestFOX 18.12.2003 17:46

Цитата:

Как они его уберут или выгрузят, если ни таск-менеджер не запустят, ни рег-едит? =)
F8 при загрузки :p

someone312002 18.12.2003 18:02

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

DeToNaToR 18.12.2003 18:42

someone312002, не беспокойся все в школе лицензионное, включая дельфи. Полиси групп и так уже настроенны, но простое переименование quake.exe в notepad.exe в данном случае помогает. Это для примера.

Вот и нужно перехватывать запуск файла, так надежнее. Потом прога не только для этого. Еще куча функций встроенно для разных нужд.

2all, опят же повторяюсь
загрузка проги будет происходить не из startup folder и не из реестра
Тут дети вряд ли что-либо обнаружат. Файл который запускается нигде не светится.

V0iD 18.12.2003 20:10

WestFOX
Если уж прога не запускается из common startup или ресстра, нигде не светиться, то я думаю, что и в safe mode загрузится без проблем => F8 тут не поможешь...

DeToNaToR
Забыл сказать, функция обработки хука должна находиться в dll.
Может нужны конкретные примеры?

WestFOX 19.12.2003 14:41

Цитата:

Если уж прога не запускается из common startup или ресстра, нигде не светиться, то я думаю, что и в safe mode загрузится без проблем => F8 тут не поможешь...
Ладно убедил, но format c: и дос еще никто не отменял :biggrin:

V0iD 20.12.2003 03:56

WestFOX
Цитата:

Ладно убедил, но format c: и дос еще никто не отменял
Представляю, как удивится DeToNaToR, когда обнаружит на компе вместо 98 какой-нить ХР, а то и линукс :biggrin:

DeToNaToR
Вот что надо для хука (все это на Си++):
HMODULE dllhook = LoadLibrary("hook.dll");
HOOKPROC hook = (HOOKPROC)GetProcAddress(dllhook, "HP");
HHOOK hhook = SetWindowsHookEx(WH_CBT,hook,dllhook,0);
{ FreeLibrary(dllhook); } // При этом хук тоже убивается...

Сама функция обработки хука должна быть такой:
__declspec(dllexport) LRESULT CALLBACK HP(int code, WPARAM wParam, LPARAM lParam);

В дире проекта dll'ки положи также файл exports.def:
LIBRARY hook
EXPORTS
HP

DeToNaToR 21.12.2003 11:54

Цитата:

Представляю, как удивится DeToNaToR, когда обнаружит на компе вместо 98 какой-нить ХР, а то и линукс
не... не получится. CD-Rom нет на компьютерах, если только с дискет будут устанавливать...
и потом восстановить win 10 минут. Norton Ghost используется :)


Часовой пояс GMT +4, время: 10:55.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.