NTSD 调试程序在启动时要求用户指定一个要连接的进程。使用 TLIST 或 PVIEWER,您可以获得某个现有进程的进程 ID,然后键入 NTSD -p pid 来调试这个进程。NTSD 命令行使用如下的句法:
NTSD [options] imagefile
其中,imagefile 是要调试的映像名称,options 是下面选项之一:
表 1. NTSD 映像文件选项
选项 说明
-2 打开一个用于调试字符模式的应用程序的新窗口
-d 将输出重定向到调试终端
-g 使执行自动通过第一个断点
-G 使 NTSD 在子程序终止时立即退出
o 启用多个进程的调试,默认值为由调试程序衍生的一个进程
-p 指定调试由进程 ID 标识的进程
-v 产生详细的输出
例如,假设 inetinfo.exe 的进程 ID 为 104。键入以下命令将 NTSD 调试程序连接到 inetinfo 进程 (IIS)。
NTSD -p 104
也可使用 NTSD 启动一个新进程来进行调试。例如,NTSD notepad.exe 将启动一个新的 notepad.exe 进程,并与它建立连接。
一旦连接到某个进程,您就可以用各种命令来查看堆栈、设置断点、转储内存,等等。
表 2. 常用命令
命令 含义
~ 显示所有线程的一个列表
KB 显示当前线程的堆栈轨迹
~*KB 显示所有线程的堆栈轨迹
R 显示当前帧的寄存器输出
U 反汇编代码并显示过程名和偏移量
D[type][<range>] 转储内存
BP[#] <address> 设置断点
BC[<bp>] 清除一个或多个断点
BD[<bp>] 禁用一个或多个断点
BE[<bp>] 启用一个或多个断点
BL[<bp>] 列出一个或多个断点
做个实验看看
例如你系统进程 1234为notepad.exe
执行ntsd -p 1234打开调试窗口
输入q
ntsd退出,被关联的进程也跟着退了了
ntsd不能终止的进程是其进程根本就不充许连接或丢弃这样的请求,再有就是最低需要administrator才有80%的保障会结束你选择的进程,system权限大概会有95%吧,嘿嘿
ntsd其实是一个debug程序,关闭进程是利用了ntsd退出时会终止与其关联的程序
NTSD [options] imagefile
其中,imagefile 是要调试的映像名称,options 是下面选项之一:
表 1. NTSD 映像文件选项
选项 说明
-2 打开一个用于调试字符模式的应用程序的新窗口
-d 将输出重定向到调试终端
-g 使执行自动通过第一个断点
-G 使 NTSD 在子程序终止时立即退出
o 启用多个进程的调试,默认值为由调试程序衍生的一个进程
-p 指定调试由进程 ID 标识的进程
-v 产生详细的输出
例如,假设 inetinfo.exe 的进程 ID 为 104。键入以下命令将 NTSD 调试程序连接到 inetinfo 进程 (IIS)。
NTSD -p 104
也可使用 NTSD 启动一个新进程来进行调试。例如,NTSD notepad.exe 将启动一个新的 notepad.exe 进程,并与它建立连接。
一旦连接到某个进程,您就可以用各种命令来查看堆栈、设置断点、转储内存,等等。
表 2. 常用命令
命令 含义
~ 显示所有线程的一个列表
KB 显示当前线程的堆栈轨迹
~*KB 显示所有线程的堆栈轨迹
R 显示当前帧的寄存器输出
U 反汇编代码并显示过程名和偏移量
D[type][<range>] 转储内存
BP[#] <address> 设置断点
BC[<bp>] 清除一个或多个断点
BD[<bp>] 禁用一个或多个断点
BE[<bp>] 启用一个或多个断点
BL[<bp>] 列出一个或多个断点
做个实验看看
例如你系统进程 1234为notepad.exe
执行ntsd -p 1234打开调试窗口
输入q
ntsd退出,被关联的进程也跟着退了了
ntsd不能终止的进程是其进程根本就不充许连接或丢弃这样的请求,再有就是最低需要administrator才有80%的保障会结束你选择的进程,system权限大概会有95%吧,嘿嘿
ntsd其实是一个debug程序,关闭进程是利用了ntsd退出时会终止与其关联的程序
49206C6F766520796F752067757973 54656C3A3133383238343036373837


