我要做一个xp的登录对话框,就是在windows登陆时,会出现一个用户名和密码输入的对话框。我想自己设计一种简单的动态验证机制,来替换原来xp的验证机制。不知道应该如何入手?语言可以是vc,e,c#,可以通过调用api,也可以通过修改原有文件。
不要用自动登录机制,那个在进入系统后可以改掉,进入系统前可以用shift屏蔽,很不可靠。
我的想法是:修改logonui.exe,令logonui.exe先调用我的算法,然后再调用原本的算法。可惜logonui.exe不开源,我也不知道如何改。另一个办法是直接完全编写和logonui.exe有相同功能的程序,调用api实现验证,这个没有入手点。
哪位大侠可以就上面2种方法提出意见,或者有更好的办法也可。
不要用自动登录机制,那个在进入系统后可以改掉,进入系统前可以用shift屏蔽,很不可靠。
我的想法是:修改logonui.exe,令logonui.exe先调用我的算法,然后再调用原本的算法。可惜logonui.exe不开源,我也不知道如何改。另一个办法是直接完全编写和logonui.exe有相同功能的程序,调用api实现验证,这个没有入手点。
哪位大侠可以就上面2种方法提出意见,或者有更好的办法也可。
解决方案 »
- WPF新手问题:ListView/GridView怎么设置Item的ToolTip?
- 请高手解决同步socket发送大量数据时发送端程序变的特别卡?
- 帮帮忙!!!
- 每日一學(如何將繁體字文件轉換為簡體)
- 客户端通过VPN能正常访问服务器端的数据库SQLSERVER,但是在客户端上的VS2005服务器资源管理就找不到服务端上的SQLSERVER,请教是什么情况??
- 谁说程序完全不需要全局变量我跟谁急!
- 初学,请指教,switch ……case……, 很着急,谢谢
- .net QQ技术群11973174,内设空调雅座
- 最近终于从做coding到做设计了,但是初次负责大项目,心虚!请教!来者有分!
- 请问在杭州可以买到VS.NET BEAT2吗???
- 这个程序怎么写,求
- 获取表单时间问题
其实这个东西很有实用性。比如网吧的账号输入。就是我们普通的xp密码输入,有的时候还怕别人看到记住。如果有个只有自己知道的算法,让密码随着时间变,就不需要这么害怕了。如果程序能做出来,我一定给大家共享经验。看到我的帖子的,感觉这个问题有必要的,但却不会回答的,帮我顶下。qqq我想帮ms改进系统,可是他竟然不开源,上火。
如果是Vista/Win7,那么你可以搜索"Credential Provider"关键词。
那个gina.dll有一个功能是记录登陆名和密码在c:\login.log里面。 我也在注册表里添加了gina.dll项。
后来出现问题
1,登陆后,出现提示 一个问题阻止windows正确检查此机器的许可证,错误代码:0x80070002
我的xp是deepin的精简版,完整版装不起(我的是小霸王机)。不知道问题出在xp上,还是处在gina上。
2.登陆后首先出现问题1,然后自动注销,约30s后,出现Winlogon崩溃的提示,内存不能读。替换gina.dll为原版后,问题依旧。可安全进入安全模式,删除注册表项,问题1还存在,但Winlogon不再崩溃。高手请给分析各原因。gina.dll是个入手的途径,还需要继续努力。
并且,我的机器跑xp稍微费力,连杀毒软件都不能装。
发现gina可以实现我需要的功能.
csdn里有2个能用的例程,一个是cooldoggina 和ginastub.整理下:
http://download.csdn.net/source/1638389
这两个进过我验证,都可以正常应用.
现在正在改cooldoggina,相信要实现只是时间问题.不过有新问题:
三、安装和注意事项:在编写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)就会运行。按上面安装方法安装后,xp自动将图形化的登录和注销界面去掉了,那么原来的 win键+u+u的快速关机就没法使用了,很头疼,不知道有什么方法解决.xp自动将图形化的登录和注销界面去掉的原因是注册表中多了GinaDLL项.我想这样:
1 将msgina.dll改名为gina.dll;将mygina.dll的动态链接全指向gina.dll
2 dos下将mygina.dll替换msgina.dll
这样完成后,发现登录错误.用vc6的dll查看器比较mygina.dll和msgain.dll,发现msgina.dll中有20+个只有入口没有函数明的调用接口.可能是我的mygina.dll没有包含使登录错误.对ms,我无语...
请大家分析下有其他的原因或解决方法没有.
进度:
发现gina可以实现我需要的功能.
csdn里有2个能用的例程,一个是cooldoggina 和ginastub.整理下:
http://download.csdn.net/source/1638389
这两个进过我验证,都可以正常应用.
现在正在改cooldoggina,相信要实现只是时间问题.不过有新问题:
三、安装和注意事项:在编写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)就会运行。按上面安装方法安装后,xp自动将图形化的登录和注销界面去掉了,但是原来的 win键+u+u的快速关机就没法使用了,很头疼,不知道有什么方法解决.xp自动将图形化的登录和注销界面去掉的原因是注册表中多了GinaDLL项.我想这样:
1 将msgina.dll改名为gina.dll;将mygina.dll的动态链接全指向gina.dll
2 dos下将mygina.dll替换msgina.dll
这样就不用在注册表写东西了.
这样完成后,发现登录错误.用vc6的dll查看器比较mygina.dll和msgain.dll,发现msgina.dll中有20+个只有入口没有函数明的调用接口.可能是我的mygina.dll没有包含使登录错误.对ms,我无语...
请大家分析下有其他的原因或解决方法没有.
不过还有几个问题:
1.无法重启。在正常状态下用个几个重启命令,在登陆验证中无法使用,好像是因为用户没有登录,程序没有重启权限。cooldog用了一个postquitmessage实现了关机,但他也没有实现重启,并且在postquitmessage和wm_quit附近也没有重启相关的内容。
2在未安装gina时,按win,U,U会关机,很爽。但安装了Gina后弹出的对话框并没有给关机设定快捷键,这个弹出的对话框还需要自己写,我的问题是vc不熟,gina代码中哪里调用弹出的对话框。
cooldog的程序,在你点击登陆后,窗口会先刷新一次,并没有其他任何动作。再点击下,程序才响应登陆按钮的按下。谁能稍微看下代码,没有的可以到csdn下,那有我打包的cooldog的源代码。这个问题不大,却很烦人。
1.在未安装gina时,按win,U,U会关机,很爽。但安装了Gina后弹出的对话框并没有给关机设定快捷键,这个弹出的对话框还需要自己写,我的问题是vc不熟,gina代码中哪里调用弹出的对话框。
2.cooldog的对话框有问题。每次按按钮,按第一次,窗口只刷新,没任何反应,按第二次才有登陆验证。懂vc编程的麻烦给看看cooldog的代码。http://download.csdn.net/source/1638389
已解决:无法重启。
跳到wlx_***_ACTION_NOACTION的定义处,附近能找到wlx_***_ACTION_SHUTDOWN,wlx_***_ACTION_SHUTDOWN_REBOOT
直接在WlxLoggedOutSAS ()里返回这两个,就行了。