Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых) |
eXeL@B —› Программирование —› Как програмно залогинится в XP ? |
Посл.ответ | Сообщение |
|
Создано: 27 марта 2006 11:13 · Личное сообщение · #1 Как програмно залогинится ? ситуция такая: На экране "нажмите Alt+Ct.." Необходимо войти с заданным логином-паролем по команде из сети предпологается написать для этого сужбу слушаящую некоторый порт на предмет команды с целью быстрого запуска некоторых прог (типа флеша) а 30 компах в сети Система Windows XP Главный вопрос: Как програмно залогинится ? не "можно ли?" а "как?" |
|
Создано: 27 марта 2006 11:18 · Личное сообщение · #2 |
|
Создано: 27 марта 2006 14:02 · Личное сообщение · #3 У меня была другая проблема: как под XP программно выключиться . Я решил её эмулируя нажатие клавиш из обычной программы. В твоём случае тоже можно эмулировать нажатия клавиш, но только через службу. В аттаче лежит статья, как пользоваться API-функциями эмулирующими нажатие. 773a_Article.zip.zip |
|
Создано: 27 марта 2006 15:34 · Личное сообщение · #4 |
|
Создано: 27 марта 2006 15:53 · Личное сообщение · #5 |
|
Создано: 28 марта 2006 16:31 · Личное сообщение · #6 |
|
Создано: 28 марта 2006 20:06 · Личное сообщение · #7 |
|
Создано: 29 марта 2006 21:05 · Личное сообщение · #8 |
|
Создано: 31 марта 2006 14:03 · Поправил: xf1700 · Личное сообщение · #9 |
|
Создано: 31 марта 2006 14:16 · Поправил: Vedrus · Личное сообщение · #10 |
|
Создано: 31 марта 2006 14:28 · Личное сообщение · #11 |
|
Создано: 31 марта 2006 14:49 · Поправил: rmf · Личное сообщение · #12 |
|
Создано: 31 марта 2006 15:24 · Личное сообщение · #13 Vedrus пишет: Из сервиса апи эмуляции нажатия клавиш не работают Какие еще нажатия клавиш... Берешь свой сервис и прописываешь username и password в текстовые поля командой SetWindowText а затем посылаешь WM_COMMAND на кнопку OK Проблема лишь в том что тебе надо прошпионить окна чтобы потом найти их через FindWindow |
|
Создано: 31 марта 2006 22:19 · Личное сообщение · #14 Vedrus пишет: xf1700, в чем проблема? Из сервиса апи эмуляции нажатия клавиш не работают? Пробовал с ними поэксперементировать не из под сервиса, а из под обычной программы? Например: программа вызывает keybd_event раз в 2 секунды - печатает букву А в любых полях ввода, кроме полей логина \ пароля однако, beep раз в 2 сек слышно в любом случае сервис, с той же функцией, работает так же. По видимому, это просто так не прокатит. rmf пишет: Тебе dll'ку надо создать, которую нужно прописать в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify по причине недостаточной прямоты моих рук, это, думаю, может выдать BSOD в самый интересный момент, а таких моментов у нас предостаточно... |
|
Создано: 31 марта 2006 23:22 · Личное сообщение · #15 |
|
Создано: 01 апреля 2006 04:16 · Поправил: Vedrus · Личное сообщение · #16 xf1700 пишет: программа вызывает keybd_event раз в 2 секунды - печатает букву А в любых полях ввода, кроме полей логина \ пароля А фокус на поле ввода установлен? Ты пробовал сам нажимать ту последовательность клавиш, которую проге скармливаешь? А то может ты просто не в том окне. Тогда надо x раз имитировать нажатие Tab. |
|
Создано: 01 апреля 2006 12:28 · Личное сообщение · #17 |
|
Создано: 01 апреля 2006 12:57 · Личное сообщение · #18 |
|
Создано: 02 апреля 2006 10:30 · Личное сообщение · #19 |
|
Создано: 02 апреля 2006 10:34 · Личное сообщение · #20 В состоянии "Нет залогиненого пользователя" Winlogon ожидает прихода SAS (secure attention sequence=защищенная последовательность активации) либо от пользователя, нажавшего CTRL-ALT-DEL, либо от GINA DLL (она может генерировать свои SAS, отличные от стандартных, и оповещать Winlogon при помощи функции WlxSasNotify). В случае возникновения SAS Winlogon вызывает в GINA функцию WlxLoggedOutSAS. GINA, обработав данное событие, может либо перевести Winlogon в состояние "Есть залогиненный пользователь. Станция разблокирована", либо оставить его в текущем состоянии. При возникновении SAS в состоянии "Есть залогиненный пользователь. Станция разблокирована" Winlogon вызывает функцию WlxLoggedOnSAS, после чего он может быть переведен в состояние "Нет залогиненого пользователя" или в состояние "Есть залогиненный пользователь. Станция заблокирована", либо оставлен в текущем состоянии. WlxSasNotify |
|
Создано: 02 апреля 2006 14:49 · Поправил: Vedrus · Личное сообщение · #21 NullSession, смотри аттач моего первого поста. Там пример. Хотя функции, которые там используются скорее всего всё-равно обращаются к WM_XXX. Слушай, а ты где нарыл эту инфу? В MSDN конечно я это видел, но может есть что-нибудь на русском. Было бы интересно разобраться. Можешь дать ссылку(и) или приаттачить? |
|
Создано: 02 апреля 2006 15:07 · Личное сообщение · #22 |
|
Создано: 02 апреля 2006 15:10 · Личное сообщение · #23 |
|
Создано: 02 апреля 2006 16:32 · Личное сообщение · #24 |
|
Создано: 06 апреля 2006 17:57 · Личное сообщение · #25 xf1700 пишет: bugtraq.ru/library/programming/keylogging.html //Подключаемся к оконной станции
попытка сделать сервис, подобный описаннаму, пока что не удается getLastError выдает "Ресурс занят" на шаге SetThreadDesktop(hDT); (пишем на delphi7) в чем может быть дело? И Сервис, вызывающий Beep раз в 3сек не запускается или не бипАет после перезагрузки пк, но до того как кто либо загогинился.. в чем может быть дело? |
|
Создано: 18 апреля 2006 19:08 · Личное сообщение · #26 |
|
Создано: 19 апреля 2006 14:01 · Личное сообщение · #27 Без переписывания msgina.dll это сложно. Как вариант: внутрь своей dll поместить код, который проверяет, не поступила ли команда по сети, и если поступит, вручную вызвать WlxLoggedOutSAS. P.s. тебе ведь надо всего лишь быстро запустить прогу - тогда вызывай CreateProcessAsUser, а код внутри службы помещай, она будет порт слушать и ничего извращенского - остановил службу - отключил эту возможность, включил на автозапуск - на тебе удалённое выполнение. Вот только проблема - а что если пошлют команду не сервера, а с другого компа, можно ведь будет под правами админа юзверям поработать. И это недостаток всех методов. |
eXeL@B —› Программирование —› Как програмно залогинится в XP ? |