Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: Thomson   发起时间: 2010-03-22 14:43 下午   回复: 3

Print Search
帖子排序:    
   2010-03-22, 14:43 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
如何调试系统启动过程中加载的驱动或者服务
Reply Quote
比如比较关键的host在svchost里面的服务. 是在dll里面的. 如果 "sxe ld XXX.dll"可以work的话,应该是个不错的办法. 不过, 在kernel debug里面,好像这个命令不能work. 有什么其它比较好的办法吗?
IP 地址: 已记录   报告
   2010-03-22, 14:54 下午
zhzhtst 离线,最后访问时间: 2009/12/24 16:16:10 zhzhtst

发帖数前200位
注册: 2007-02-10
发 贴: 5
Re: 如何调试系统启动过程中加载的驱动或者服务
Reply Quote
要想使sxe ld xxx.dll在内核模式下工作,必须先执行!gflag +ksl命令
IP 地址: 已记录   报告
   2010-03-23, 09:17 上午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 如何调试系统启动过程中加载的驱动或者服务
Reply Quote

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

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

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

 

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


IP 地址: 已记录   报告
   2010-03-24, 10:37 上午
ioriwellings 离线,最后访问时间: 2011/1/4 2:56:38 不及格的程序员-八神

发帖数前50位
男
注册: 2009-11-11
发 贴: 22
Re: 如何调试系统启动过程中加载的驱动或者服务
Reply Quote
对于驱动肯定要内核调试了

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

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

另外服务启动 是有超时限制的 可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout
下设置超时时间.
不及格的程序员-八神
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 如何调试系统启动过程中加载的驱动或者服务

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.