ntsd教程

最近要用到ntsd,在网上找了几个文章都是说用它来结束进程什么的,其实ntsd是个调试器,功能强大的很呢!

 

ntsd命令详细的帮助信息:
ntsd自身是一个基于内核的调试器程序。他有很多隐藏功能,都是system权限,可是人们通常使用的只有一个或者数个参数,如 ntsd -c q -p ,ntsd -c q -pn.大家都知道这个命令到底有多强大,我现在把其他的参数给大家介绍以下

参数介绍:
-? 显示帮助信息
该命令行是基于内核模式的调试器
-aDLLName 设置默认DLL执行头信息
-c 和调试命令一起执行,执行序列号可以远程同步
-d 发送所有调试信息到内核调试器,该参数不能用在远程系统,只能在内核调试器允许的时候才可以使用。
-g 忽略调试器中初始化断点
-G 忽略在进程结束是最后的断点
-hd 对创建的进程提供未使用的堆栈,这种选项只能工作在windows系统底层
-o 把所有的进程调试信息发送调试器
-p 显示PID,捕获和进程对应的十进制ID
-pd 执行完成后自动退出调试器
-pe 捕获任意一个正在执行DUBUG机器所使用的端口
-pn 捕获并显示进程名
-pt 超时而中断,用#表示中断号
-pv 捕获任意不活动进程
-r 错误级别编号(0-3),在函数(seeseterroleave)中使用
-robp 允许把断点所表示内存区域设为只读
-t 显示错误等级,和-r配合使用
-w 在虚拟机中单独调试16位应用程序
-X 为第二个通道的中断设置AV例外
-x<event> 和参数-e -d -n -i并用,为一个指定event设置一个中断状态
-2 为DEBUG创建一个独立会话窗口
-i 为制定的进程产生默认的路径(和(see_NT_EXECUTABLE_IMAGER_PATH)函数的效果相同)
-lines 如果系统接受该请求,线性序列将被使用
-myob 忽略不匹配的DBHELP.DLL版本
-n 允许输出symob句柄的详细信息
-noio 为指定远程服务禁止所有I/O
-noshell 禁用shell
-QR<[url=file://\\machine]\\machine[/url]> 查询远程服务是否开启
-s 禁止载入空闲的 symbol
-ses 允许严格的 symbol载入
-sfce 在搜索文件期间遇到关键错误,而导致搜索失败
-sicv 当载入symbol时忽略CV记录
-snul 遇到非法的名称,禁止自动载入symobl
-srcpath 指定原搜索路径
-v 允许输出调试器的详细信息
-wake 唤醒一个休眠的调试器,然后退出
-y 指定symbol搜索路径,和(see _NT_SYMBOL_PATH)函数相同
-z<CrashDumpFile> 对一个crash dump file文件指定一个名字到debug
-zp<CrashDumpFile>指定一个页面跳转文件给crash dump文件使用
-remote 让你可以远程连接到一个DEBUG处理中心,必须优先同意该请求。
传输端口:tcp npipe ssl spipe 1394接口 串口,
名字:创建一个DEBUG所需机器名
端口ID:debug服务所需的端口号
tcp端口:port=<sock port #>
npip端口:pipe=<name of pipe>
1394接口:channel=<channel #>
串口: port=<com port> baud=<baud rate> channel=<channel #>
为SSL很SPIPE显示档案记录(举例说明)

NTSD命令的快捷键:
ctrl-b:退出调试器
ctrl-c:中断标记
ctrl-f:前一个中断标记
ctrl-p:当前调试器
ctrl-v:切换调试器为详细模式
ctrl-w:显示版本信息



有一个非常重要的参数就是-v参数,我们可以通过它发现一个进程下面挂接了哪些连接库文件.有很多病毒,木马,或者恶意软件,都喜欢把自己做成动态库,然后注册到系统正常程序的加载库列表中,达到隐藏自己的目的.

首先我们需要设置一下ntsd的输出重定向,最好是重定向到一个文本文件,方便我们分析研究.
c:\>set _NT_DEBUG_LOG_FILE_APPEND=c:\pdw.txt
注意,虽然输出重定向了,但是我们的输出依然会继续显示在屏幕上,而且会进入到debug模式,我们使用-c q参数,就可以避免这个问题.

c:\>ntsd -c q -v notepad.exe
现在我们的pdw.txt文件中,就可以看见notepad.exe文件的调试信息.

 

你可能感兴趣的:(ntsd教程)