Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DmSK
0 / 0 / 0
Регистрация: 07.03.2011
Сообщений: 13
#1

Авторизация пользователя через MsGina - Userinit.exe - C++

07.03.2011, 18:27. Просмотров 748. Ответов 0
Метки нет (Все метки)

Друзья!
Последние дни занят поиском решения одной проблемы.
Хочу поделиться:

Написал работоспособную MsGina2.dll в замен стандартной. Работает.
Следующей задачей заменил стандартную функцию pWinlogonFunctions->WlxLoggedOutSAS на LogonUser, которую на самом деле инкапсулирует(скрывает) выше упомянутая функция WlxLoggedOutSAS. Работает.

А вот заменить pWinlogonFunctions->WlxActivateUserShell роблема т.е. на CreateProcessAsUser, которую на самом деле скрывает WlxActivateUserShell. Вылетает ошибка при след. коде:
Что в коде не так?

Код
BOOL WINAPI WlxActivateUserShell(PVOID pWlxContext, PWSTR..........
{
....
GetProfileString(WINLOGON_APP, USERINIT, USERINIT_DEFAULT, chText, MAX_PATH);

	StartCount = 0;
	strcpy(chScan, strtok(chText, ','));

	while (chScan)
    {
        ZeroMemory(&si, sizeof(si));
        si.cb = sizeof(STARTUPINFO);
        si.lpTitle = chScan;
        si.dwX = si.dwY = si.dwXSize = si.dwYSize = 0L;
        si.dwFlags = 0;
        si.wShowWindow = SW_SHOW;   // at least let the guy see it
        si.lpReserved2 = NULL;
        si.cbReserved2 = 0;
        si.lpDesktop = (char*) pszDesktopName;

        ImpersonateLoggedOnUser(hTokenT);

        if (CreateProcessAsUser(hTokenT,			
                            NULL,                   
                            chScan,                 // Command Line -
                                                    // pathUserinit.exe
                            NULL,                   
                            NULL,                   
                            FALSE,                  
                            CREATE_UNICODE_ENVIRONMENT,
                            pEnvironment,
                            NULL,
                            &si,
                            &pi))
        {
            StartCount++;
            CloseHandle(pi.hProcess);
            CloseHandle(pi.hThread);
        }

        RevertToSelf();

        strcpy(chScan, strtok(NULL, ','));
    }

return ..
}
.

.Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2011, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Авторизация пользователя через MsGina - Userinit.exe (C++):

Авторизация пользователя по первой введенной букве - C++
Добрый день! Есть вот такая вот задача на строки: Для авторизации необходимо ввести свой nickname. Если первая буква nickname - это A,...

Регистрация и авторизация пользователя - можно ли оптимизировать код - C++
Можно ли как-то упростить такой код, или это - то что нужно? Простенькие до ужаса регистрация пользователя и авторизация. #include...

как эту программу сделать через функции пользователя? - C++
как эту программу сделать через функции пользователя? #include <iostream> #include <string.h> using namespace std; int main() { ...

Компиляция библиотеки через make.exe - C++
Скачал исходный код библиотеки oglft-0.9, скачал make-3.81.exe, не могу понять как скомпилировать, подскажите. В папке есть файлы ...

Как переделать код?. Нужно сделать через функции пользователя - C++
#include <string.h> #include <iostream> #include <algorithm> using namespace std; int main() { char *st=new...

Компиляция заданного кода в exe через программу - C++
Хочу узнать поподробнее, как реализовать компиляцию некого заданного кода в exe для windows через самописную программу. Ведь как-то писали...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2011, 18:27
Привет! Вот еще темы с ответами:

Как получить пусть к папке exe через api - C++
GetModuleFileName даёт полный путь а как узнать папку?копилятор MinGW

Открыть и закрыть файл exe через определенное время - C++
Извините за тупой вопрос. Мне нужно просто открыть экзешник и со временем,например 5 секунд,чтобы сам просто закрылся. То есть просто...

как сделать через функцию пользователя и чтобы размер мог вводить пользователь ? - C++
#include <iostream> #include <stdlib.h> #include <time.h> #include <math.h> #include <conio.h> using namespace std; int...

Как открыть проект на C++ Visual Studio через EXE ярлык - C++
Есть проект C++ Visual Studio 2013, как можно перенести и открыть его в exe файле?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru