九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
替換GINA.DLL實現(xiàn)自己的登陸界面


你可以通過編程替換掉微軟的MSGINA.DLL,用來實現(xiàn)自己的密碼登陸驗證功能,如圖,我就加入了兩個密碼驗證的功能。

一、原理
在NT/2000 中交互式的登陸支持是由WinLogon調(diào)用GINA DLL實現(xiàn)的,GINA DLL提供了一個交互式的界面為用戶登陸提供認證請求。WinLogon會和GINA DLL進行交互,缺省是MSGINA.DLL(在System32目錄下)。微軟同時也為我們提供了接口,我們可以自己編寫GINA DLL來代替MSGINA.DLL。

WinLogon初始化時會創(chuàng)建3個桌面:
(1)、winlogon桌面:主要顯示W(wǎng)indows 安全等界面,如你按下CTRL+ALT+DEL,登陸的界面等
(2)、應(yīng)用程序桌面:我們平時見到的那個有我的電腦的界面
(3)、屏幕保護桌面:屏幕保護顯示界面。

在默認情況下,GINA顯示登陸對話框,用戶輸入用戶名及密碼 。所以要獲得用戶名和密碼 ,則可以寫一個新的GINA DLL,其中提供接口調(diào)用msgina.dll的函數(shù)WlxLoggedOutSAS。

二、程序?qū)崿F(xiàn)
GINA DLL要輸出下列函數(shù)(winlogon會調(diào)用):

(表一)GINA 函數(shù)一覽表

函數(shù)    描述
WlxActivateUserShell   激活用戶外殼程序
WlxDisplayLockedNotice   允許GINA DLL 顯示鎖定信息
WlxDisplaySASNotice    當沒有用戶登陸時,Winlogon調(diào)用此函數(shù)
WlxDisplayStatusMessage   Winlogon 用一個狀態(tài)信息調(diào)用此函數(shù)進行顯示
WlxGetConsoleSwitchCredentials    Winlogon調(diào)用此函數(shù)讀取當前登陸用戶的信任信息,并透明地將它們傳到目標會話
WlxGetStatusMessage    Winlogon 調(diào)用此函數(shù)獲取當前狀態(tài)信息
WlxInitialize    針對指定的窗口位置進行GINA DLL初始化
WlxIsLockOk    驗證工作站正常鎖定
WlxIslogoffOk    驗證注銷正常
WlxLoggedOnSAS    用戶已登陸并且工作站沒有被加鎖,如果此時接收到SAS事件,則Winlogon 調(diào)用此函數(shù)
WlxLoggedOutSAS    沒有用戶登陸,如果此時收到SAS事件,則Winlogon 調(diào)用此函數(shù), This indicates that a logon attempt should be made 。
WlxLogoff    請求注銷操作時通知GINA DLL
WlxNegotiate    表示當前的Winlogon版本是否能使用GINA DLL
WlxNetworkProviderLoad    在加載網(wǎng)絡(luò)服務(wù)提供程序收集了身份和認證信息后,Winlogon 調(diào)用此函數(shù)
WlxRemoveStatusMessage    Winlogon 調(diào)用此函數(shù)告訴GINA DLL 停止顯示狀態(tài)信息
WlxScreensaverNotify    允許GINA與屏幕保護操作交互
WlxShutdown    在關(guān)閉之前Winlogon 調(diào)用此函數(shù),允許GINA實現(xiàn)任何關(guān)閉任務(wù),例如從讀卡器中退出智能卡
WlxStartApplication    當系統(tǒng)需要在用戶的上下文中啟動應(yīng)用程序時調(diào)用此函數(shù)
WlxWkstaLockedSAS   當工作站被鎖定,如果接收到一個SAS,則Winlogon 調(diào)用此函數(shù)

為了簡化編程,我們從MSGINA.DLL中動態(tài)獲取上述函數(shù),在自定義的DLL中(以下稱為MyGina.DLL)中直接調(diào)用MSGINA.DLL的函數(shù)即可?,F(xiàn)在我們要處理的就是WlxLoggedOutSAS函數(shù):
  1. int WINAPI WlxLoggedOutSAS(PVOID                pWlxContext,  
  2.          DWORD                dwSasType,  
  3.          PLUID                pAuthenticationId,  
  4.          PSID                 pLogonSid,  
  5.          PDWORD               pdwOptions,  
  6.          PHANDLE              phToken,  
  7.          PWLX_MPR_NOTIFY_INFO pMprNotifyInfo,  
  8.          PVOID *              pProfile)  
  9. {  
  10. //=========================加入我的登陸=========================  
  11.     
  12.   
  13.   
  14.    Clogin login;  
  15.  if (login.DoModal()==IDCANCEL)  
  16.  {  
  17.    return WLX_SAS_ACTION_NONE;  
  18.  }  
  19.  if(login.bCLOSE==TRUE)  
  20.  {  
  21.   return WLX_SAS_ACTION_SHUTDOWN;  
  22.  }  
  23.  if(login.DoModal()==IDOK)  
  24.  {  
  25.   
  26.   char UserName[40];  
  27.   char PassWord[40];  
  28.   char PassWord2[40];  
  29.     
  30.   strcpy(UserName,theApp.MyUser);  
  31.   strcpy(PassWord,theApp.MyPass);  
  32.   
  33.  //在這里,我為了簡便,直接在程序里面比較密碼,并且把默認管理員賬號設(shè)置為自動登陸  
  34.   
  35. //自動登陸函數(shù)SetAutoLogon  
  36.         strcpy(PassWord2,theApp.MyPass2);  
  37.  //  AfxMessageBox(UserName);  
  38.  //  AfxMessageBox(PassWord);    
  39.   if(!strcmp(UserName,"Administrator"))  
  40.    if(!strcmp(PassWord,"123"))  
  41.     if(!strcmp(PassWord2,"456"))  
  42.     {  
  43.      SetAutoLogon("administrator","","123");  
  44.      return theApp.MyWlxLoggedOutSAS(pWlxContext,dwSasType,pAuthenticationId,  
  45.    pLogonSid,pdwOptions,phToken,pMprNotifyInfo,pProfile);  
  46.     }  
  47.   
  48.   
  49.  }  
  50.  AfxMessageBox("密碼或者用戶名錯誤!不能登陸!");  
  51.  return WLX_SAS_ACTION_NONE;  
  52.   
  53. }  

然后設(shè)計登陸框,實現(xiàn)自己的界面,具體實現(xiàn)就不再詳細說明了,可以參考代碼。

三、安裝和注意事項:

在編寫GIAN DLL中要注意,GINA DLL使用的是unicode。
引用

【安裝】GINA DLL的安裝:
1. 添加注冊表
鍵名 : \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
變量名 : GinaDLL
變量類型 : [REG_SZ]
內(nèi)容 : "你的GINA DLL的名稱" 如:"MyGina.DLL:

2. 將你的GINA DLL(MyGina.dll)拷貝到系統(tǒng)目錄下(system32);

3. 重啟機器,你的GINA DLL(MyGina.dll)就會運行。

【注意】
1. 如果出現(xiàn)進不了你的系統(tǒng),那你進入DOS后,將msgina.dll拷貝成你的GINA DLL(MyGina.dll)就可進入了;或者進入安全模式,刪除掉那個鍵值( GinaDLL )。

2. Console 程序如果想使用MFC類,必須包含,同時注釋掉

3. 如果出現(xiàn)這種錯誤:“LINK : fatal error LNK1104: cannot open file "mfc42u.lib" ”,那么說明 lib路徑的設(shè)置問題,你的鏈接器在指定的目錄下沒有找到這個的文件,你應(yīng)該添加新的目錄以便編譯器找到所需的庫文件。具體位置:IDE中菜單Tools \Options\Directories\show directories for。

4. 如果出現(xiàn)這種錯誤:“uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”或者“mfcs42ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in main.obj ”,那么“See if you have _AFXDLL and _USRDLL in the preprocessor definitions. Try removing one of them”。具體位置:IDE中 菜單Project \ Setting \ C/C++ \ preprocessor definition 。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Gina Dll
基于數(shù)字證書的UKEY安全登錄 與身份認證技術(shù)研究
GINA編程
制作ADM模板,自定義登陸畫面-活動目錄SEO博客
Ring3下無驅(qū)動移除winlogon.exe進程ctrl+alt+del,win+u, win7中無效
Windows XP系統(tǒng)中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc鍵序列 - VC知識庫文章
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服