C ++: Костюм GINA dll не загружается - PullRequest
0 голосов
/ 04 июля 2019

Я использую Windows 7 64 бит.Я скачал pGina проект с здесь и установил его.Что я хочу сделать, так это внести в него небольшие изменения.

Просто для начала я отредактировал

PGINA\pgina-3.1.8.0\pGina\src\Gina\Gina\GinaExports.cpp

и добавил здесь небольшую функцию журнала:

int WINAPI WlxLoggedOutSAS(PVOID pWlxContext, DWORD dwSasType, PLUID 

pAuthenticationId, PSID pLogonSid, 
                           PDWORD pdwOptions, PHANDLE phToken, PWLX_MPR_NOTIFY_INFO pMprNotifyInfo, PVOID *pProfile) 
{
    pDEBUG(L"WlxLoggedOutSAS");
    pGINA_FROM_CTX(pWlxContext);


    FILE *fp;
    fopen_s(&fp, "C:\\Users\\Test\\log.txt", "w+");
    fprintf(fp, "GINA exports!");
    fflush(fp);

    return pGina->LoggedOutSAS(dwSasType, pAuthenticationId, pLogonSid, pdwOptions, phToken, pMprNotifyInfo, pProfile); 
}

Я успешно собрал проект (x64), и выходной файл был pGinaGINA.dll.

Я изменил разрешение файла журнала и позволил всем изменять его.Я также создал

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL

и установил его на pGinaGINA.dll (я поместил эту DLL в C:\Windows\System32\)

Когда машина загружается, я получаю CTR+ALT+DELэкран, а затем pGina провайдер учетных данных.Но проблема в том, что этот журнал не появляется.Я также перечислил dll, которые есть в winlogon.exe, а моего dll там нет.

Кажется, что я делаю что-то не так, но не могу понять, что.

...