Ntsd简介
ntsd从Windows 2000开始就是系统自带的进程调试工具,在system32目录下。NTSD的功能非常的强大,用法也比较复杂,但如果只用来结束一些进程,那就比较简单了。
编辑本段Ntsd用法
Ntsd在Windows中只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。lsass.exe也不要杀掉,它是负责本地账户安全的。被调试器附着的进程会随调试器一起退出,所以可以用来在命令行下终止进程。 打开cmd 后输入以下命令就可以结束进程:
利用进程PID结束进程
命令格式:ntsd -c q -p pid
命令范例: ntsd -c q -p 4 (结束System进程。当然,System进程是杀不掉的)
范例详解:System的pid为4,但是如何获取进程的pid呢?在CMD下输入TASKLIST就可以获取当前任务管理器所有进程的PID。
或者打开任务管理器,在菜单栏,选择“查看”—“选择列”,在打开的选择项窗口中将“PID(进程标识符)”项选择钩上,这样任务管理器的进程中就会多出PID一项了。(PID的分配并不固定,是在进程启动是由系统随机分配的,所以进程每次启动的进程一般都不会一样。)
可使用以下批处理:
=================================================
rem 复制以下内容到记事本,另存为pid.bat
@echo off
mode con cols=30 lines=10
color 1e
echo.
set /p t=请输入进程名:
echo PID NAME& echo ============
for /f "tokens=2 delims=," %%i in ('tasklist /fo csv /fi "imagename eq %t%.exe" /nh') do ntsd -c q -p %%i&echo %%i %t%
pause >nul
exit
=================================================
利用进程名结束进程
命令格式:
ntsd -c q -pn ***.exe (***.exe 为进程名,exe不能省)
ntsd -c q -p pid (pid为表格中的“PID”。想要找到表格可以输入“tasklist”)
命令范例:ntsd -c q -pn explorer.exe
另外的能结束进程的DOS命令还有taskkill和tskill命令:
命令格式: taskkill /pid 1234 /f ( 也可以达到同样的效果。)
taskkill /im ***.exe /f
有一个非常重要的参数就是-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使用以下参数杀死进程.
c:\>ntsd -c q -p PID 只要你能提供进程的PID,那么你就可以干掉进程。
ntsd缺点:
可以知道,ntsd的软件终止能力是很好很强大的,一些taskkill都无法终止的软件(如Student.exe这一类或木马)可以用ntsd轻易终止 但是它仍有缺点,因为技术在不断更新,在对付最新的有很强防护的病毒等程序时 ,仍建议使用IceSword等专业工具。可以试一下ntsd拿360,IceSword,nod32等杀软程序毫无办法。