![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
есть программа которая не разрешает открыть 2 окна, но при этом 2 окна открываються в разных пользователях ! (запуск от имени другого пользователя не помогает, надо запустить именно 2 разных пользователя.)
Как можно виртуально реализовать разных пользователей ??? только что бы было в пределах одного рабочего стола... В первую очередь меня интересует теория... а там уже можно и практику... Всем очень благодарен заранее за помощь ! |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
какая среда и платформа реализации?
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
Windows XP, C++ - WinAPI , разные левые классы и т. д. подойдут
Добавлено через 2 минуты и 52 секунды извините пожайлуста что так долго не отвечал... благодарен Вам очень за помощь |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
См в MSDN функции LogonUser и CreateProcessAsUser |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
не нужно никого "виртуально реализовывать". надо просто найти вызов CreateMutex/CreateObject(как правило, именно эти функции и обычно первые их вызовы) в дизассемблированном коде и пропатчить оный. но могут быть глюки, если программа захватывает в единоличное владение какие-либо ресурсы в пределах сессии.
hint: exe'шник выложи куда-нибудь - посмотрим. |
|||
|
||||
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
так вот дело и в том что хотелось бы именно так сделать как я говорю... так как интересно бы розобраться...
P.S. xvr, посмотрю щас в MSDN.... мож поможет, пасиба |
|||
|
||||
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
не, такие ф-и MSDN немного не то :( мы просто запускаем с правами другого пользователя программу... а мне надо именно симитировать нового пользователя: типа как запустил пользователя нажал win+L, выбрал другого пользователя и запустил прогу...
|
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Эти функции как раз то - запуск от имени другого пользователя.
Так что только манипуляции с окнами и desktop'ами Можно попробовать найти окно запущенной программы и поменять имя окна |
||||
|
|||||
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
FindWindow - Ищет окно по заданному классу окна и заголовку (скорее всего программа использует эту функцию для поиска своей запущенной копии). При поиске можно не указывать ни имя класса ни заголовок. Если программа ищет без учета заголовка, то метод его подмены не пройдет Для подмены делаем следующее:
|
|||
|
||||
| Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
Не, по имени окна не катит тоже :(
походу по именни класса окна... мож ктот знает как можно сменить ? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
ну да, как говорится, "хозяин - барин". перебирай варианты... |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Не поможет. Судя по симптомам (возможность запуска на разных desktop'ах) используются не глобальные mutex'ы, а банальный поиск окна запущенного экземпляра программы по классу (окна). Так что искать и пэтчить надо FindWindow (или FindWindowEx). 2 Djinn: Пэтчить не обязательно exe'ник, это можно сделать и в уже загруженной программе, не трогая исполняемый файл. |
|||
|
||||
| Djinn |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
Не будь так уверен... Просто раньше оно было по другому сделано...
Это понятно... так вот меня и интересует как можно сменить имя класса ??? наверняка есть ф-я какая нибудь... Щас сам поищу... если найду, то скажу... Добавлено через 4 минуты и 7 секунд
Та и дело даже далеко не в этом... вобшем меня именно мало интересует патчить программу... скорее вариант со сменной класса окна... |
||||||
|
|||||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
нет. основной смысл был не в патче, а в распознании метода защиты от повторного запуска, дабы потом осмысленно с ним побороться - методов немало. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |