![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
ситуация: приложение начинается с загрузки модальной формы для ввода логина и пароля (2 Edit'a + 2 BitBtn'a). нужно блокировать клаву и мыху везде,кроме области приложения (чтобы пользователь или вводил пароль,или ничего не мог делать за машиной).
КАК блокировать, вроде понятно (BlockInput из user32.dll + отдельная блокировка Ctrl+Alt+Del), а вот как отслеживать, ГДЕ именно происходят движения мыхи и нажатия клавы и выборочно разрешать их полльзователю... подскажите,а? |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
Тут очень много варинтов... А если я, например, на другую задачу переключусь?
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
дело в том,что прога сидит в автозагрузке и работа юзверя за машиной начинается только после ввода логина и пароля,иначе никакие ресурсы не доступны... а когда залогинится - пожалуйста!
во всяком случае, так должно быть |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
А зачем начинать только после этого ? Ведь пользователь все равно залогинился к машине - значит можно в этой программе использовать GetUserName - и пользователь идентифицируется однозначно. Ну а дальше логинится можно автоматом - пользователь уже зашел на машину. IMHO - это гораздо более приличный вариант. |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
нет, ну за одной и той же машиной могут работать разные пользователи, их невозможно идентифицировать по GetUserName... у каждого есть свой логин и пароль и свои права (например, на кол-во часов работы за машиной)
|
|||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
ну.. а зачем тогда твоя блокировка ? система и так пускает толькот зареженых юзверей -------------------- кодер + лодырь = колдырь |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
И все пользователи логинятся с одним и тем же именем ? Это просто полное пренебрежение к элементарной безопасности. Зачем усложнять себе жизнь ? |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
хорошо,перейдем к конкретике: место действия - терминальный класс в учебном заведении, пользователи - студенты (за день за одной и той же машиной поработает не один, и не два студента, а много больше), которым положено определенное кол-во часов работы за машиной (любой!).
вход в ОС (Novell + Win98/Win2k) осуществляется по имени userXXX и пустому паролю. а вот далее грузится наша прога и держит на экране приглашение ввести логин и пароль (у каждого студента они свои) для начала работы за машиной и учета времени... вот и нужно сделать так,чтобы студент не мог ничего делать за машинкой,пока он не введет требуемые прогой логин+пароль. блокировка? блокировка. Это сообщение отредактировал(а) varra - 16.4.2003, 00:09 |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Ну вот с этого и стоило начинать.
Итак тут всё делается намного проще на старте твоей программы убиваешь EXplorer, если user ввёл правельный пароль то твоя программа его запускает. После окончания сеанса юзера опять убиваешь Explorer. |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
законный вопрос: что искать в хэлпе (в смысле,как убить процесс)?
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Чтож, нельзя не признать - приложение получится полезное. А что - готовых не было программ подобного вида?
Для уничтожения процесса исп. ф-ю TerminateProcess, а для поиска его по имени - ф-и CreateToolhelp32Snapshot/Process32First/Process32Next -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
на нашем fuckультете - нет (сейчас учет ведется в базе на Акцессе, студенты, приходя в класс, сдают бумажки -"разрешения", по которым администратор класса заносит их в базу - рутинная и абсолютно лишняя работа). а за функции спасибо |
|||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
вот тебе супер
чуть переделаешь поможет, но работает только в 98 PS Всё таки ИМХО дать кажному студенту свой пароль и имя -------------------- кодер + лодырь = колдырь |
|||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
-------------------- кодер + лодырь = колдырь |
|||
|
||||
| Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields Репутация: 1 Всего: 88 |
А может попробовать написать прогу, которая бы добавляла юзверей в систему с соответствующими настройками доступа? И не надо бы было два раза логиниться.
-------------------- Слава Україні. |
|||
|
||||
| varra |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
дык к этому и стремимся!
чво-то по твоей ссылке 404 вылазиет
а вот это не есть гуд, потому как в классах и 98, и 2000 виндовсы стоят |
||||||
|
|||||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
||||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
Вот исходник : http://galileo.spaceports.com/~donpager/do...nload/passw.rar
-------------------- кодер + лодырь = колдырь |
|||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
требует очень небольшой доработки, сам не занимался т.к. под 2к отпала надобность в такой прожульке... -------------------- кодер + лодырь = колдырь |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
||||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Под любую, но там возможно из-за одной функции небудет работать в NT
Но я эту функцию пометил. (вообще то она не так важна) |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
в 98 все отлично,спасибо. в 2000 на RegisterServiceProcess (GetCurrentProcessID, 1) вылетает (raised too many consecutive exeptions: 'access violation at 0x00000000: read of address 0x00000000'). и вообще,сколько ни копалась в инете по поводу скрытия проги от Ctrl+Alt+Del вWin2к, решения не нашла... |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
varra
Есть 2 решения: 1 Глобальный хук + коректировка таблицы импорта во всех процессах -> фильтрация всех вызовов некоторых функций. Плюсы: работает хорошо, как в 98, так и в 2000. Минусы: есть некоторые проблемы с консольными приложениями 2 Драйвер редактирующий ServiceDescriptorTable -> фильтрация всех вызовов некоторых функций. Плюсы: в 2000 это намного лучше первого варианта. Минусы: драйвера может устанавливать только администратор или кто-то с похожими правами + драйвер будет работать только в 2000, т.е. в 95/98/ME им уже не воспользуешься. |
|||
|
||||
| RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Слушай, а ведь в NT/XP можно вообще запретить ACD (Вроде где то в реестре. может даже в pollicies) Это сообщение отредактировал(а) RAdmin - 20.4.2003, 09:17 |
||||
|
|||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
2RAdmin по-моему, что бы не вылетали ошибки при работе программы это задача программиста, а не пользователя. А так по-моему получаеться наглость я как пользователь качал из интернета или откудато еще твою программу, забил её винт, а она мне еще и говорит что мол я должен отключить там, там и там, поставить то, то и то, сменить монитор на такой, как у автора, так после этого автор еще и деньги за своё детище попросит. Хотя мне, как программисту это очень удобно.
А вообще пиши-те так:
|
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Жаль немогу на NT проверить поэтому такая вот вариация :
procedure RegisterServiceProcess(a,b:dword);stdcall;external 'kernel32.dll'; RegisterServiceProcess(0,1); |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
всё, со скрытием задачи и процесса в Win2k справились, спасибо man2002ua
а вот с Explorer'ом не все гладко: 1)если грузить в 98 свое приложение ВМЕСТО него, через system.ini (shell='myapp.exe'), то юзер может запросто отредактировать файл и поставить shell='explorer.exe'... так ведь? 2)если Explorer все-таки грузится, а мое приложение (до ввода логина и пароля) его "убивает", то после повторной загрузки Explorer'a некоторые иконки в системном трее (например,раскладка клавы и некоторые др.) не видны (Win 98) 3) в Win 2000 Explorer вообще самостоятельно загружается после "убиения" Это сообщение отредактировал(а) varra - 21.4.2003, 21:03 |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
не за что
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| varra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.3.2003 Где: Новосибирск Репутация: нет Всего: нет |
а можно ведь system.ini открыть на запись , тогда юзверь не сможет его отредактировать и загрузить при старте не мое приложение, а explorer... |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
>>Жаль, что у Songa не заработало, хотел бы я знать почему!
Да. У меня критический сбой системы Слушай а текстом драйвера не поделишься? -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
поделюсь, только с условием, что все ошибки и ляпы, к-я ты найдешь станут известны мне
тебе куда? -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
Я ничего перекомпилить не буду, просто нечем
Из спортивного интереса -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Это по-поводу нашего давнишнего разговора о прятании задач? -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: нет Всего: 4 |
Да, хочу посмотреть общий принцип.
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
Если я не ошибаюсь, то общий принцип перехвата вызова хорошо описан у Свена Шрайбера(и не только) и именно он используеться для прятания процесса.
man2002ua или я ошибаюсь? (я драйвер не смотрел, это просто предположения того, как может работать твой.) |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
XpyDi, если честно (даже стыдно), но про Шрайбера первый раз слышу (может дашь линк на его работы?). А принцип прятания процесса - тот, что ты сказал (NtQuerySystemInformation). А насчет прятания задачи - win32k.sys!EnumWindows service.
Это сообщение отредактировал(а) man2002ua - 24.4.2003, 10:02 -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
У меня он только в печатном виде. Искал в электроном, но пока не нашел. А сам принцип вначале был описан Марком Руссиновичем Брюсом Конгсвеллом, он основан на модификации KeServiceDescriptorTable и KeServiceDescriptorTableShadow.
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Оно самое!!
Ты случаем не в Киеве проживаешь? -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
Нет. Свен Шрайбер иногда публикуеться в MSDN Magazine, можешь там посмотреть. Я если найду его статьи в электроном виде, то я скину. А так у меня книжка "Недокументированные возможности Windows 2000" издательсва Питер, так что можешь у них заказать. |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
test
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |