ntsd.exe是Microsoft Windows 2000(Microsoft Windows XP)系統自帶的用戶態調試工具。可用它結束刪除System、SMSS.EXE、CSRSS.EXE以外的所有進程。該程式經常被病毒利用,用來強制結束防毒軟體進程。
基本介紹
- 外文名:ntsd.exe
- 進程名稱:Symbolic Debugger for Windows
- 系統自帶:Microsoft Windows 2000
- 可用:它結束刪除System、SMSS.EXE
概述,出品者,使用,問題描述,防毒辦法,
概述
進程檔案名稱與類型: ntsd or ntsd.exe
進程名稱: Symbolic Debugger for Windows 。
出品者
Microsoft
屬於: Microsoft Windows Operating System
系統進程: 是
使用網路: 是
硬體相關: 否
常見錯誤: 未知N/A
記憶體使用: 未知N/A
間諜軟體: 否
廣告軟體: 否
病毒: 否
木馬: 否
使用
NTSD(Microsoft Windows NT Symbolic/Systems Debugger)是Windows 2000(Microsoft Windows XP)默認安裝的一
個調試器。這其實是一個命令行版本的WinDBG,功能上稍微縮了一點水,但是對一般的調試
來說是足夠用了。
usage: NTSD [-v] [-2] [-d] [-o] [-g] [-G] [-w] [-lines]
[-aDllName] [-s] [-r BreakErrorLevel] [-t PrintErrorLevel]
[-hd] [-x | -xd [except#] | -xe [except#]] [-e] [-z]
[-- | -p pid | command-line]
where: -? displays this help text
-aDllName sets the default extension DLL
-c executes the following debugger command
指定要執行的調試命令,多個命令之間用“;”分隔
-d sends all debugger output to kernel debugger via DbgPrint
-g ignores initial breakpoint in debuggee
-G ignores final breakpoint at process termination
-hd disables heap manager validity checking
-i ignores AV generated by loader fixups on pre3.51 systems
-lines requests that line number information be used if present
-netsyms:{yes|no} allow or disallow loading symbols from a network path
-o debugs all processes launched by debuggee
-r specifies the (0-3) error level to break on (SeeSetErrorLevel)
-s disables lazy symbol loading
-t specifies the (0-3) error level to display (SeeSetErrorLevel)
-v enables verbose output from debugger
-n enables verbose output from symbol handler
-w specifies to debug 16 bit applications in a separate VDM
-x disables break on AV exceptions
-xd disables stopping on specified exception
-xe enables stopping on specified exception
-z reserved for OS/2 debugging
-2 creates a separate console window for debuggee
對於控制台程式,將輸出定向到另一個視窗而不在NTSD視窗顯示
-- is the same as -G -g -o -p -1
-p pid specifies the decimal process Id to attach to
指定要調試的進程號,用於調試已經運行的程式
command-line is the command to run under the debugger
Environment Variables:
_NT_SYMBOL_PATH=[Drive:][Path]
Specify symbol image path. (Default = %SystemRoot%)
_NT_ALT_SYMBOL_PATH=[Drive:][Path]
Specify an alternate symbol image path.
_NT_DEBUG_EXTENSIONS=dllname(s)
If specified, it is a semi-colon separated list of debugger extension DLL names
This specifies the search order when resolving debugger extension commands
A [<address>] - assemble
在指定地址輸入彙編語句
BC[<bp>] - clear breakpoint(s)
清除斷點
BD[<bp>] - disable breakpoint(s)
禁用斷點
BE[<bp>] - enable breakpoint(s)
啟用斷點
BL[<bp>] - list breakpoint(s)
列出斷點
BP[#] <address> - set breakpoint
設斷點
C <range> <address> - compare
比較地址
D[type][<range>] - dump memory
顯示指定記憶體範圍
E[type] <address> [<list>] - enter
在指定地址輸入數據
F <range> <list> - fill
在指定記憶體段填充數據
G [=<address> [<address>...]] - go
運行到某個地址
J<expr> [']cmd1['];[']cmd2['] - conditional execution
條件執行
K <count> - stacktrace
堆疊回溯
KB = <base> <stack> <ip> - stacktrace from specific state
L{+|-}[lost*] - Control source options
LN <expr> - list near
參數為地址或者函式,顯示距離參數中指定地址或者函式最近的函式
LS[.] [<first>][,<count>] - List source file lines
LSA <addr>[,<first>][,<count>] - List source file lines at addr
LSC - Show current source file and line
LSF[-] <file> - Load or unload a source file for browsing
M <range> <address> - move
N [<radix>] - set / show radix
P[R] [=<addr>] [<value>] - program step
單步執行
Q - quit
#R - multiprocessor register dump
多處理器環境下顯示暫存器
R[F][L][M <expr>] [[<reg> [= <expr>]]] - reg/flag
顯示暫存器
Rm[?] [<expr>] - Control prompt register output mask
S <range> <list> - search
在指定地址範圍內搜尋字元串
0:000> s 77df0000 77e4c000 ff e4 //從user32的空間中找jmp esp
77e22c29
0:000> s 77df0000 77e4c000 'W' 'I' 'N' 'N' 'T' //搜尋字元串“WINNT”
SS <n | a | w> - set symbol suffix
SX [e|d [<event>|*|<expr>]] - exception
T[R] [=<address>] [<expr>] - trace
U [<range>] - unassemble
顯示反彙編語句,同softice的U命令
X [<*|module>!]<*|symbol> - view symbols
顯示符號,支持通配符,類似於softice的exp命令
0:000> x user32!* //顯示user32的所有符號
…………
0:000> x user32!ws* //顯示user32的所有以ws開頭的符號
77dffa68 USER32!wsprintfW
77e0014a USER32!wsprintfA
.logopen [<file>] - open new log file
指定日誌檔案,開啟螢幕記錄非常有用的功能
.logappend [<file>] - append to log file
添加到已存在的日誌檔案
.logclose - close log file
停止記錄
~ - list threads status
顯示執行緒狀態
~#s - set default thread
設定默認執行緒
~[.|#|*|ddd]f - freeze thread
~[.|#|ddd]k[expr] - backtrace stack
堆疊追蹤
| - list processes status
顯示進程狀態
|#s - set default process
設定默認進程
|#<command> - default process override
? <expr> - display expression
顯示地址或者符號信息
0:000> ? wsprintfA
Evaluate expression: 2011169098 = 77e0014a
0:000> ? eip
Evaluate expression: 2012813324 = 77f9180c
#<string> [address] - search for a string in the dissasembly
反彙編指定地址,但是只輸出一行語句
$< <filename> - take input from a command file
從檔案取得要輸入的命令
<expr> ops: + - * / not by wo dw poi mod(%) and(&) xor(^) or(|) hi low
operands: number in current radix, public symbol, <reg>
<type> : b (byte), w (word), d[s] (doubleword [with symbols]),
a (ascii), c (dword and Char), u (unicode), l (list)
f (float), D (double), s|S (ascii/unicode string)
q (quadword)
: [(nt | <dll-name>)!]<var-name> (<var-name> can include ? and *)
<event> : ct, et, ld, av, cc
<radix> : 8, 10, 16
<reg> : $u0-$u9, $ea, $exp, $ra, $p
<addr> : %<32-bit address>
<range> : <address> <address>
: <address> L <count>
<list> : <byte> [<byte> ...]
User-mode options:
i386 options:
BA[#] <e|r|w|i><1|2|4> <addr> - addr bp
<reg> : [e]ax, [e]bx, [e]cx, [e]dx, [e]si, [e]di, [e]bp, [e]sp, [e]ip, [e]fl,
al, ah, bl, bh, cl, ch, dl, dh, cs, ds, es, fs, gs, ss
fpcw, fpsw, fptw, st0-st7, mm0-mm7
<flag> : iopl, of, df, if, tf, sf, zf, af, pf, cf
<addr> : #<16-bit protect-mode [seg:]address>,
&<V86-mode [seg:]address>
NTSD還支持一些很有用的命令,但是不知為什麼幫助中卻沒有提,這裡也列出來:
KD [<count>] - stack trace with raw data
raw模式堆疊回溯
SQ - set quiet mode
設定安靜模式,運行一次打開,再運行則關閉
LD [<module>] - refresh module information
重新載入
LM list modules
列出進程載入的所有模組信息
DL <address> <maxcount> <size> - dump linked list
NTSD支持的表達式和WinDBG差不多是一樣的,MASM的語法。
系統自帶的NTSD也支持部分擴展命令,如:
!peb
!teb
英文版本
進程檔案: ntsd.exe or ntsd
進程名稱: Symbolic Debugger for Windows
描述:
ntsd.exe is a process belonging to the Microsoft symbolic debugger that enables you to debug user-mode applications. This program is a non-essential process, but should not be terminated unless suspected to be causing problems.
Recommendation for ntsd.exe:
ntsd.exe should not be disabled, required for essential applications to work properly.
Author: Microsoft
Part Of: Microsoft Windows Operating System
安全等級 (0-5): 0
間諜軟體: No
病毒: No ( Remove ntsd.exe )
木馬: No ( Remove ntsd.exe )
Memory Usage: N/A
System Process: Yes
Background Process: No
Uses Network: No
Hardware Related: No
Common ntsd.exe Errors: N/A
問題描述
出現提示缺少exe檔案問題的大部分原因是因該檔案被木馬病毒破壞導致系統程式找不到此檔案,出現錯誤提示框,或程式無法運行,解決此問題只需找到專業的exe檔案下載網站,下載該檔案後,找到適合程式的檔案版本,複製到相應目錄。即可解決。
1、Windows 95/98/Me系統,則複製到C:\WINdows\system32\ 目錄下。
2、Windows NT/2000系統,則複製到C:\WINNT\system32\ 目錄下。
3、Windows XP系統,則複製到C:\WINdows\system32\ 目錄下。
4、Windows 7/8系統,則複製到C:\WINdows\system32\目錄下。
防毒辦法
打開regedit註冊表,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ 這就是傳說中的映像劫持區了(現在的病毒如ntsd.exe喜歡在這裡做手腳),把裡面的子項統統刪掉,這還不夠,還要斬草除根:對“Image File Execution Options”按右鍵,選擇“許可權”,然後把“完全控制”和讀取都設定為拒絕,這樣“映像劫持區”就變成禁區了,除了你自己,誰都不能動,這種方法至少可以防範90%的新病毒。
丟失修復
1、下載可牛防毒系統急救箱。
2、點擊“開始急救”,進行一鍵式修復,智慧型匹配與作業系統相符的系統檔案。
3、使用可牛免費防毒對電腦進行全面掃描,清除電腦中存在的潛在危險。