Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Показать окно поверх экрана входа в аккаунт Добавлено: 27.04.09 20:18  

Автор вопроса:  Programmer
Необходимо из системного сервиса (VB .NET) показать окно поверх экрана входа в систему. Подозреваю, что для этого надо как-то переключить десктоп на тот, который использует winlogon.exe, так окно не появляется. Как узнать в каком дестопе работает экран winlogon и переключится на него? Google не находит.

Может поможете, я надеюсь...

Заранее спасибо за ответ!

Ответить

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

Номер ответа: 1
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 27.04.09 20:38
опять вирус, которому нада смс отправить?))

Ответить

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



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #2
Добавлено: 27.04.09 20:56
точно)

Ответить

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



ICQ: 9968842 

Вопросов: 40
Ответов: 337
 Web-сайт: vkontakte.ru/id25563295 добавляйтесь в друзья))
 Профиль | | #3
Добавлено: 27.04.09 20:57
мне кажется проще winlog заменить своим экзешником)

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #4 Добавлено: 27.04.09 21:38
Ничего подобного! Если честно: мне нужно найти десктоп экрана входа в систему чтобы написать мега-кейлоггер ))), который сможет ловить нажатия в этом экране )))) но это только для своего компа, никуда встраивать не буду.

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #5 Добавлено: 27.04.09 21:39
Нужно для "защиты" от домашних.

Ответить

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #6
Добавлено: 27.04.09 21:55
http://social.msdn.microsoft.com/forums/en-US/windowssecurity/thread/4aadadbd-fc3d-4239-ba0f-4d81f17ec938/

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #7 Добавлено: 27.04.09 22:14
Почитал. Понял не все.
1. WTSGetActiveConsoleSessionId();
2. WTSQueryUserToken() for winlogon.exe winlogon pid
3. DuplicateTokenEx ()
4. AdjustTokenPrivileges ()
5. CreateProcessAsUser () lpDesktop to Winsta0\Winlogon

Fire the executable via taskscheduler (schtasks.exe) with SYSTEM priveleges.


Muhahahaha , and then if you dont see youre app in the winlogon desktop, try hitting ALT+TAB .... in the winlogon desktop.

I hope microsoft keeps this entry point for showing things on the secure desktop, cause we use it to show the unattended installation progress, I think the secure desktop should stay accessible in future releases.

(btw, I did not test it with FUS Fast User Switching, It worked with a domain account setting, this means Fast User Switching is not enabled).

Будет ли это работать под ХР (там,насколько я понял, искали решение под висту)?

Посмотрел описание функций...
Насколько я понял, нужно сделать что-то вроде этого:

  1. pid=%%НАЙТИ_PID_WINLOGON%%
  2. sid=WTSGetActiveConsoleSessionId
  3. Dim sec As SECURITY_IMPERSONATION_LEVEL
  4. DuplicateTokenEx(sid, !!!КАКИЕ ТУТ ПАРАМЕТРЫ?!!!, 1)
  5. ngTokenPrivileges = TOKEN_ADJUST_PRIVILEGES
  6. Call OpenProcessToken(PID, lngTokenPrivileges, lngToken)
  7. Call LookupPrivilegeValueA(vbNullString, "SE_SHUTDOWN_NAME", udtLUID)
  8. Dim udtLUID As LUID
  9. udtTokenPrivNew.PrivilegeCount = 1
  10. udtTokenPrivNew.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
  11. udtTokenPrivNew.Privileges(0).pLuid = udtLUID
  12. lngReturn = AdjustTokenPrivileges(lngToken, 0, udtTokenPrivNew, 0&, 0, 0&)


Вот последняя часть... как мне вместо запуска другого процесса подключить текущий к десктопу winlogon?

Ответить

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #8
Добавлено: 27.04.09 22:46
что значит подключить?

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #9 Добавлено: 27.04.09 22:53
Ну, сделать так, чтобы в качестве текущего рабочего стола мой сервис использовал тот рабочий стол, в котором запущен winlogon.
Функция GetAsyncKeyState не может получать значение из других десктопов, поэтому мне надо "переключиться" на десктоп окна входа в систему.

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 27.04.09 23:07
Programmer, по дефолту служба не имеет доступа к рабочему столу да и не должна его иметь, потому что это служба! Она должна тихонько висеть в памяти и делать свое дело-таково ее предназначение.. Чтобы дать ей доступ к рабочему столу, ты должен в свойствах службы поставить галочку "Разрешить взаимодействие с рабочим столом", но это от лукавого.. так неправильно делать..

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #11 Добавлено: 27.04.09 23:14
Это где есть такая галочка? И так GetAsyncKeyState будет возвращать значение? Ну я и протупил, залез в какие-то десктопы, а оказывается нужно было просто поставить галочку?

***ушел искать галочку :-) ***

Ответить

Номер ответа: 12
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #12
Добавлено: 28.04.09 01:00
Все вы, наверное, в антивире касперского видели поверх логона 'антивирь кав х.0', так там просто взяли через api-fnc setwindowpos и поверх окон сделали. Запускается сервис, разрисовка(так как формы в сервисе недоступны), готово.
кстати, вход в аккаунт осуществляется через logon.exe, а не winlogon.exe(это совсем другая служба).

Ответить

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #13
Добавлено: 28.04.09 08:55
Я тебя поэтому и спросил
что значит подключить?
. По-моему касперский вполне логично поступает

Ответить

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



Вопросов: 71
Ответов: 246
 Профиль | | #14 Добавлено: 28.04.09 17:01
Ну, сделать так, чтобы в качестве текущего рабочего стола мой сервис использовал тот рабочий стол, в котором запущен winlogon.

Ответить

Страница: 1 |

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



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