[七天乐]一点GINA备忘 |
小工头 发表于 2005/10/6 15:41:30 | 为什么国庆长假还要被工作骚扰……555
GINA的全称是Graphical Identification and Authentication,它是M$在windows操作系统中使用的图形化身份认证接口,以DLL的形式存放在系统文件夹下(NT/2000下是WINNT/system32,95/98/me/XP下是windows/system32)。开机之后,一个名为winlogon.exe的进程调用缺省的GINA DLL,提供图形化的登录界面。
GINA的接口是公开的,我们可以自行开发GINA DLL来代替M$缺省的msgina.dll,实现更高强度的安全认证,例如用IC卡认证代替windows认证(小声说,同样的技术也可以用来做木马……)。系统启动时,winlogon.exe会在注册表中查找\HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon,如果存在GinaDLL这个键,则使用此键所指向的DLL,否则使用缺省的msgina.dll。因此,只要我们把自己开发的GINA DLL放到系统文件夹下,再修改注册表加入GinaDLL键值,就可以使用自己的GINA DLL了(小声说,如果在别人的电脑上这么做,就可以偷到开机密码了……)
不过,这种做法容易被安全模式绕过。在安全模式下,winlogon只使用msgina.dll,因此可以绕过自定义的GINA DLL。在网上看到一种说法,可以在negotiate接口中把自定义的GINA DLL重新命名为msgina.dll,就可以防止用安全模式绕过自定义GINA。如果这种办法可以生效的话,这就意味着winlogon在安全模式下仍然会调用自定义GINA DLL,然后再使其无效。本来俺很想试一试的,犹豫再三还是放弃了。原因是,系统运行期间winlogon一直在运行,直到关机时才会没有释放所调用的GINA DLL。因此,一旦把自定义GINA DLL重新命名为msgina.dll,就无法在系统正常运行期间恢复把真正的msgina.dll。而俺对winlogon调用GINA DLL的机制还不是很清楚,如果贸然通过程序进行GINA DLL的替换和备份,有可能恢复不回来。这对调试来说是很危险的事情。俺第一次试写GINA DLL的时候就做出了一个华丽的死循环,一直进不到windows界面,后来通过安全模式才恢复过来,汗……虽说是在虚拟机上调试的,可是装起来也比较费劲的说。因此,这个险俺暂时还是不冒了。
|
|
回复:一点GINA备忘 |
xmpdhml(游客)发表评论于2006/2/22 15:17:42 | 先在普通模式把程序调试好,每个GINA导出函数都根据需要编写自己的功能后再调用msgina.dll的相应函数,发布时把msgina.dll改名为a.dll(注意程序内LoadLibrary也相应改动),自身dll改名为msgina.dll即可。
至于对msgina.dll改名,可以试试MoveFileEx,参数MOVEFILE_DELAY_UNTIL_REBOOT和MOVEFILE_REPLACE_EXISTING。
仅供学习研究,请不要用来做坏事 -_-!
|
|
» 1 »
|

.: 公告
有人的地方就有恩怨 有恩怨的地方就是江湖 人在江湖漂,谁能不挨刀 |
|
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称:少年包工头的工作日记 日志总数:629 评论数量:1458 留言数量:56 访问次数:8976973 建立时间:2004年12月8日 |
|

.: 留言板
|

.: 链接
|

|