Я использую 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 там нет.
Кажется, что я делаю что-то не так, но не могу понять, что.