Re: 如何调试系统启动过程中加载的驱动或者服务

Windows内核调试

如何调试系统启动过程中加载的驱动或者服务


Thomson 2010-03-22, 14:43 下午
比如比较关键的host在svchost里面的服务. 是在dll里面的. 如果 "sxe ld XXX.dll"可以work的话,应该是个不错的办法. 不过, 在kernel debug里面,好像这个命令不能work. 有什么其它比较好的办法吗?

Re: 如何调试系统启动过程中加载的驱动或者服务


zhzhtst 2010-03-22, 14:54 下午
要想使sxe ld xxx.dll在内核模式下工作,必须先执行!gflag +ksl命令

Re: 如何调试系统启动过程中加载的驱动或者服务


格蠹老雷 2010-03-23, 09:17 上午

彻底的方法是在Target上自动运行一个CDB或者NTSD,将其输入输出重定向到KD。

简单的方法是对DbgkMapViewofSection 设置条件断点,比如: 

bp DbgkMapViewofSection ".if($proc=815783f0){} .else{.echo map dll in ;? $proc;gc}"

 

上面的条件是感兴趣的进程中加载DLL时就中断,否则打印一句话,然后继续

Re: 如何调试系统启动过程中加载的驱动或者服务


不及格的程序员-八神 2010-03-24, 10:37 上午
对于驱动肯定要内核调试了

对于服务 windows 系统注册表中 有一项是可以设置的:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

这里可以设置要调试的文件名

另外服务启动 是有超时限制的 可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout
下设置超时时间.
不及格的程序员-八神

Powered by Community Server Powered by CnForums.Net