调试GINA

Posted on 2006年3月6日 3:21

据说调试GINA( Graphical Identification and Authentication )是件麻烦的事情,蚂蚁现在认识到了。

选择Softice也许就不会折腾这么久了,不过蚂蚁还是坚持使用免费软件进行工作的准则,如果用WinDbg可以办到,就不采用Softice,在这个过程中采用的唯一的涉及到版权的软件是VMWare:P……,因为需要虚拟机支持USB设备,因此采用VPC也是不可行的。

最开始的单纯的想法行不通:VMWare + Boot.ini调试 + WinDbg。无法连接到调试端口。马上有个想法就是我们调试的是Winlogon进程,它一定是负责与调试器通讯和进行调试控制的,这就形成了一个悖论,自己调试自己。在Windbg的文档里介绍了用NTSD来调试Winlogon进程的方法,但问题是你必须有Winlogon的调试版本,调试版本好像是可以自调试的,但调试版哪里来呢?蚂蚁不知道,所以还得另谋他路。

确定Winlogon负责调试工作的文章请看Inside NT boot,里面有这么一句话:

启动WINLOGON.EXE.
创建用于调试的LPC端口,并创建线程来监视.

最后就找到了How to debug a GINA DLL on a single computer,决定采取单虚拟机调试方案,映射了网络驱动器到源码和符号表目录。这样就像调试普通应用程序一样来逐步跟踪调试GINA DLL。

开发环境搭建完成。

Technorati : ,

Feedback

请发表评论
发表评论
标题
 
姓名
 
网址
验证码
 
评论  
 

Copyright twinsant.