51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2880|回复: 6
打印 上一主题 下一主题

[原创] 如何debug lsass.exe

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-3 04:10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天需要调试lsass.exe, 昨天baidu竟然都查不到什么信息。lsass有它的一些特点。首先它是运行在user mode, 因此一般来讲应该用user mode的调试工具来调试。可是,如果用debuuger直接跟它相连,计算机就会自动重启,使得调试无法进行下去。其次,如果我们想在机器启动的时候调试lsass也比较麻烦,因为user mode debugger那个时候还不能工作。再次,调试lsass的时候,网络的访问不能进行,因此从网络上访问symbols and source code 也成为了不可能。经过认真研究,发现有三种方法可以用来调试lsass,并且各有优缺点。下面就一一讲解一下。

1. ntsd piped through KD

a. 修改注册表

HKLM\Software\Microsoft\Windows NT\CurrenVersion\Image File Execution Options\lsass.exe debugger = REG_SZ c:\debuggers\ntsd.exe -d -g -G

b. 用另一台机器通过kernal debugger和测试机相连

c.重起测试机

这样的话,在启动阶段,当系统调起lsass的时候,测试机的ntsd就开始工作,并且将输入,输出传送到kernal debugger上。这个属于在kernal debugger里进行user mode的调试。

优点:可以在启动的时候调试lsass。

缺点:symbols and source files 必须要copy在测试机上。(不太方便)

  

2.Debugging LSA via dbgsrv.exe

a.Find the PID for LSA via tlist.exe

b. C:\Program Files\Debugging Tools for Windows>dbgsrv.exe -t tcp:port=1234,password=spat

c.Run this command to attach to LSA on the remote machine.

I:\debugger>windbg.exe -premote tcp:server=192.168.1.102,port=1234,password=spat -p 596  -- where 596 = PID of LSASS

优点:symbols and source files 可以在调试机上

缺点:不能在启动的时候进行调试

  

3.Debugging LSA from Kernel

a. Get the process address for LSASS

0: kd> !process 0 0 lsass.exe

PROCESS 815196c0 SessionId: 0 Cid: 010c Peb: 7ffdf000 ParentCid: 00e4

DirBase: 042d2000 ObjectTable: 81519aa8 TableSize: 859.

Image: LSASS.EXE

b. Switch to the process context:

Either

.process /p /r 815196c0

Or

.process –i 815196c0 ;g;.reload /user

优点:symbols and source files 可以在调试机上,可以进行log out/ log on 过程的调试

缺点:不能在启动的时候进行调试

因此,如果想在启动的时候调试,就必然要选方法1。如果想在log on的时候调试,选择方法3。其他情况,可以选择方法2,或者方法3。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-3 09:49:43 | 只看该作者
微软中国有很多专门的Debugger
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-8-3 09:53:08 | 只看该作者
原帖由 xiaoshancom 于 2007-8-3 09:49 发表
微软中国有很多专门的Debugger



什么意思?什么专门的debugger?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-3 09:55:43 | 只看该作者
专职Debug的,完后找到合适Owner。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-8-3 09:57:35 | 只看该作者
什么title?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-8-3 10:09:24 | 只看该作者
SDET

SDE/T LEAD
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-8-3 10:19:35 | 只看该作者
专门做debugging的SDET?
如果发现bug的时候已经就知道谁是owner了,还需要debugging吗?
还有就是是不是他们只是debugging无法确定owner的bug?
有SDET lead专职做这个?那他们的手下做什么?
如果他们专职做这个,那么必定有其他SDET进行通常的测试。那么专职debugging的和通常SDET的比例是多少?
每个项目都是有PM,DEV,SDET组成的,那么这种专职debugging的SDET是存在于任何一个项目中,还是专门有一个team来解决任何项目的bug呢?

谢谢回答。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 02:18 , Processed in 0.072362 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表