打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GINA编程

GINA编程

1 winlogon 简介
Windows Logon Process:Windows NT 用户登陆管理程序,负责管理登录相关的安全性工作,它负责处理用户的登录与注销、启动用户shell、输入口令、更改口令、锁定与解锁工
作站等。该进程的正常路径应是 [系统盘]:\Windows\System32 且是以 SYSTEM 用户。
Winlogon进程保证其与安全相关操作对其他进程不可见,以免其他进程取得登录密码。系统初始化时,启动用户程序之前,Winlogon进行特定工作已保障以上的需求。Winlogon进
程将创建并打开一个Window Stations,然后设置一个访问控制人口(ACE),该ACE中只包含Winlogon进程的SID,这样就只有Winlogon进程才能访问该Window Stations 。然后winlogon创建桌面,设置其中的winlogon桌面只有winlogon可以访问,其他进程不能访问该桌面的任何数据和代码;利用这一特性保护口令、锁定桌面等操作的安全。winlogon还会注册安全注意序列(SAS - secure attention sequence)的热键,任何时候按下SAS热键(缺省为ctrl+alt+del),将调用Winlogon,切换到安全桌面,从而使密码捕捉程序不能接收登录密码和更改密码等安全活动。

2 GINA DLL
而登录进程的验证和身份验证都是在GINA(GINA - Graphical Identification and Authentication图形标识和身份验证)中实现的,微软的GINA是MSGINA.dll,实现了默认的
Windows NT登录界面。WinLogon和GINA DLL交互如下图示:


微软同时也为我们提供了接口,我们可以自己编写GINA DLL来代替MSGINA.DLL。由此,用户可以自己开发GINA DLL以实现其他的身份验证方法,如磁卡。当然这也为木马留下了机会,可以通过编写和系统GINA界面相同的GINA,然后取代GINA.dll来盗取用户的密码信息。(在编写GIAN DLL中要注意,GINA DLL使用的是unicode。)
WinLogon和GINA DLL进行交互,GINA DLL要输出下列函数供winlogon调用:
WlxNegotiate
WlxInitialize
WlxDisplaySASNotice
WlxLoggedOutSAS
WlxActivateUserShell
WlxLoggedOnSAS
WlxDisplayLockedNotice
WlxWkstaLockedSAS
WlxIsLockOk
WlxIsLogoffOk
WlxLogoff
WlxShutdown
WlxScreenSaverNotify
WlxStartApplication
WlxNetworkProviderLoad
WlxDisplayStatusMessage
WlxGetStatusMessage 
WlxRemoveStatusMessage
WlxGetConsoleSwitchCredentials
WlxReconnectNotify
WlxDisconnectNotify

当winlogon弹出用户登录界面,提示用户输入用户名和密码时会调用gina dll中的WlxLoggedOutSAS函数。如果用户需要定制特殊的身份验证方式可以写一个新的GINA DLL,其中提供接口调用msgina.dll的函数WlxLoggedOutSAS。其他的函数则直接从MSGINA.DLL中动态获取。如果要获得用户名和密码 ,方法雷同。。。
WlxLoggedOutSAS函数的原型如下:
int WlxLoggedOutSAS(
  PVOID pWlxContext,
  DWORD dwSasType,
  PLUID pAuthenticationId,
  PSID pLogonSid,
  PDWORD pdwOptions,
  PHANDLE phToken,
  PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
  PVOID* pProfile
);
其中PWLX_MPR_NOTIFY_INFO pNprNotifyInfo参数会记录用户的名称和密码信息。木马可以记录此信息到某些文件或者注册表中并寻找时机发送到木马作者手中。代码参考

3 安装和注意事项:

在编写GIAN DLL中要注意,GINA DLL使用的是unicode。

【安装】GINA DLL的安装:
1. 添加注册表
键名 : \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
变量名 : GinaDLL
变量类型 : [REG_SZ]
内容 : "你的GINA DLL的名称" 如:"MyGina.DLL:
2. 将你的GINA DLL(MyGina.dll)拷贝到系统目录下(system32);
3. 重启机器,你的GINA DLL(MyGina.dll)就会运行。

【注意】
1. 如果出现进不了你的系统,那你进入DOS后,将msgina.dll拷贝成你的GINA DLL(MyGina.dll)就可进入了;或者进入安全模式,删除掉那个注册表键值( GinaDLL )。
2. Console 程序如果想使用MFC类,必须包含<afx.h>,同时注释掉<windows.h>。
3. 如果出现这种错误:“LINK : fatal error LNK1104: cannot open file "mfc42u.lib" ”,那么说明 lib路径的设置问题,你的链接器在指定的目录下没有找到这个的文件,你
应该添加新的目录以便编译器找到所需的库文件。具体位置:IDE中 菜单Tools\Options\Directories\show directories for\ <library files>。
4. 如果出现这种错误:“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 。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
替换GINA.DLL实现自己的登陆界面
Gina Dll
基于数字证书的UKEY安全登录 与身份认证技术研究
制作ADM模板,自定义登陆画面-活动目录SEO博客
解决Windows?XP欢迎屏幕和快速用户切换被停用
电脑进程详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服