您的位置  > 互联网

-cq-ppid(进程标识符)范例详解

命令示例:ntsd -cq -p 4 (结束进程,当然进程不能被杀死)

例子详解:pid是4,但是如何获取进程的pid呢? CMD下输入即可获取当前任务管理器中所有进程的PID。 或者打开任务管理器,在菜单栏中选择“查看”——“选择列”,在打开的选择窗口中勾选“PID(进程标识符)”项,这样任务管理器的进程就会有一个更多PID项目。 (PID的分配不是固定的,是进程启动时系统随机分配的,所以每次进程启动时一般不会一样。)

可以使用以下批处理过程:

===================================================

rem 将以下内容复制到记事本并另存为pid.bat

@回声关闭

模式 con 列=30 行=5

颜色1e

回声。

set /pt=请输入进程名称:

/fo csv>2.txt

查找“%t%”2.txt>1.txt

对于 (1.txt) 中的 /f "=, =2" %%i 执行设置 a=%%i

ntsd -cq -p %a%

回显 PID 名称

回声============

回显%a%%T%

删除1.txt

删除2.txt

暂停 >nul

出口

===================================================

使用进程名称结束进程

命令格式:ntsd -cq -pn ***.exe(***.exe为进程名,exe不能省略)

命令示例:ntsd -cq -pn .exe

其他可以结束进程的 DOS 命令包括 和 命令:

命令格式:/pid 1234 /f (也可以达到同样的效果)

[编辑本段]Ntsd详解

有一些高级进程可能无法终止,因此我们有一个更强大的工具,那就是系统调试级的ntsd。 准确的说,ntsd是一个系统调试工具,只提供给系统开发级管理员使用,但是对于我们杀进程来说还是很爽的。 基本上除了系统自身的管理进程之外,ntsd可以杀掉所有的东西。 NTSD 调试器要求用户在启动时指定要连接的进程。 使用 TLIST 或者您可以获取现有进程的进程 ID,然后键入 NTSD -p pid 来调试该进程。 NTSD 命令行使用以下语法:

NTSD[]

其中是要调试的图像的名称。

用法:ntsd [-?] [-2] [-d] [-g] [-G] [-myob] [-lines] [-n] [-o] [-s] [-v] [- w ]

[-r] [-t]

[-hd] [-pd] [-pe] [-pt #] [-pv] [-x | -x{e|d|n|i} ]

[-- | -p PID | -pn 名称 | 线 | -z]

[-zp] [-] [-robp]

[-] [-c ""] [-i ] [-y ]

[-#] [-] [-QR \\] [-唤醒]

[- :=名称,] [- :]

[-ses] [-sfce] [-sicv] [-snul] [-noio] [-] [-]

在哪里: -? 这个帮助文本

-line 是在以下运行

-- 与 -G -g -o -p -1 -d -pd 相同

- 设置DLL

-c 的

- 的行数

- 并且加载失败

-d 将所有内容发送到 via

-d 与

-d 只能在以下情况下使用

-杜松子酒

-G 最终于

-hd 不使用调试堆

为了 。 这仅适用于 .

-o 全部由

-p pid 的 ID

-pd 表示

-pe 任何一个调试端口

-pn name 收件人的姓名

-pt # 的

-pv 任何一个

-r 在 () 上中断的 (0-3) 错误级别

-robp 设置为只读

-t 将 (0-3) 错误级别设置为 ()

-w 在 VDM 中调试 16 位

-x 在 AV 上设置中断

-x{e|d|n|i} 设置事件的中断

-2 为

-i 那个的

错误(参见_PATH)

-lines 该行被使用,如果

.DLL 中的 -myob

-n 来自

-noio 所有 I/O

- 贝壳 (!!)

-QR 为

-s 懒惰

-ses

-sfce 失败文件

-sicv CV 时

-snul 用于名称

- 路径

-v 来自

-wake 唤醒 a 并退出

-y 路径(参见)

-z 要调试的故障转储文件的名称

-zp page.dmp 文件的名称

与故障转储一起使用

- 让你与 -

必须是第一个如果

: TCP | 管道 | SSL | 导管| 1394 | 1394 com

name:调试的名称

: 所在端口的 id

对于 TCP 使用:端口=

对于 npipe 使用:pipe=

供 1394 使用:=

对于 com 使用:端口=,波特=,

=

对于 ssl 和 spip,请参阅

: ... - npipe:=,pipe=

- 另一个可以

必须是第一个如果

: TCP | 管道 | SSL | 导管| 1394 | 1394 com

:用户可以访问的端口id

对于 TCP 使用:端口=

对于 npipe 使用:pipe=

供 1394 使用:=

对于 com 使用:端口=,波特=,

=

对于 ssl 和 spip,请参阅

: ... - npipe:pipe=

- 到 到

给出为

=[驱动器:][路径]

图像路径。

=[驱动器:][路径]

图像路径。

=[驱动器:][路径]

dll 的第一个路径

_PATH=[驱动器:][路径]

图像路径。

=[驱动器:][路径]

文件路径。

笔=

如果 ,则全部从 0 开始到该文件。

附加=

如果 ,全部都会到这个文件。

ZE=尺寸

a 的大小

按键:

辞职

闯入

强制闯入(与 Ctrl-C 相同)

调试

模式

打印

ntsd: - 按回车键 ---

选项:

-2 打开新窗口用于调试字符模式应用程序

-d 将输出重定向到调试终端 -g 使执行自动通过第一个断点

-G 导致 NTSD 在子例程终止时立即退出 o 启用多个进程的调试,默认为调试器生成一个进程

-p 指定调试由进程ID标识的进程

-v 产生详细输出。

例如,假设 .exe 的进程 ID 为 104。键入命令“NTSD -p 104”将 NTSD 调试器附加到该进程 (IIS)。 您还可以使用 NTSD 启动新进程进行调试。 例如,NTSD .exe 将启动一个新的 .exe 进程并与其建立连接。 连接到进程后,您可以使用各种命令来查看堆栈、设置断点、转储内存等。

命令含义~显示所有线程的列表 KB 显示当前线程的堆栈跟踪~*KB 显示所有线程的堆栈跟踪 R 显示当前

帧寄存器输出 U 反汇编代码并显示程序名称和偏移量 D[type][<range>] 转储内存 BP 设置断点 BC[] 清除一个或多个断点 BD[] 禁用一个或多个断点 Click BE[< bp>] 启用一个或多个断点 BL[] 列出一个或多个断点。

个人认为,一个非常重要的参数就是-v参数,通过它我们可以查出某个进程附加了哪些连接库文件。 有很多病毒、木马或者恶意软件喜欢把自己做成动态库,然后注册到系统中正常程序的加载库列表中来隐藏自己。

首先,我们需要设置ntsd的输出重定向。 最好将其重定向到文本文件,以方便我们分析和研究。

c:\>设置 PPEND=c:\pdw.txt

请注意,虽然输出被重定向,但我们的输出仍然会继续显示在屏幕上,并且会进入调试模式。 我们可以通过使用-cq参数来避免这个问题。

c:\>ntsd -cq -v .exe

现在在我们的pdw.txt文件中,可以看到.exe文件的调试信息。

可以知道,ntsd的软件终止能力非常好,也很强大。 一些无法终止的软件(例如.exe或木马)可以使用ntsd轻松终止

但它仍然有缺点,因为技术在不断更新,在处理最新的病毒和其他防护能力较强的程序时,

,还是建议使用其他专业工具。 你可以尝试ntsd搞定360,nod32等杀毒程序都没有解决办法。