职位:技术总监 1、精通c++(linux平台、vc++Mfc、qt)、java、php、unity3d,略懂python 2、用c++开发过嵌入式产品,用c++开发过大型银行运维产品 3、用java开发大型银行运维产品,学校教务系统 4、用php开发进销存系统(在销售中),用php开发淘宝小程序 5、用unity3d开发衣柜设计软件,在运营中
分类: Windows平台
2016-07-05 12:15:56
在NT/2000 中交互式的登陆支持是由WinLogon调用GINA DLL(默认就是msgina.dll,在system32目录下)实现的,GINA DLL提供了一个交互式的界面为用户登陆提供认证请求。
这种方式支持win2000,win2003,winxp。win2008微软的登录模块修改了机制,需要另外做改造。
WinLogon启动后,加载msgina.dll,他们间的交互过程可以描述为:
1.Winlogon探测到一个SAS(Secure Action Sequence)事件。
2.Winlogon确定探测到SAS时的系统状态。
3.Winlogon调用合适的GINA函数。
4.GINA函数负责执行必要的操作。
5.GINA回递执行结果。
GINA 导出函数一览
;
;
WlxDisplaySASNotice;
WlxLoggedOutSAS;
WlxActivateUserShell;
WlxLoggedOnSAS;
WlxDisplayLockedNotice;
WlxWkstaLockedSAS;
WlxIsLockOk;
WlxIsLogoffOk;
WlxLogoff;
WlxShutdown;
v1.1新增:
WlxStartApplication;
WlxScreenSaverNotify;
v1.2无新增
v1.3新增:
WlxNetworkProviderLoad;
WlxDisplayStatusMessage;
WlxGetStatusMessage;
WlxRemoveStatusMessage;
v1.4新增:
WlxGetConsoleSwitchCredentials;
WlxReconnectNotify;
WlxDisconnectNotify;
上面最重要的函数是WlxLoggedOutSAS,认证过程的改造需要在这里改造。由于代码编写过程中,极易蓝屏。建议使用虚拟机做好快照。