社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 728阅读
  • 0回复

[分享]寻找系统中端口与进程之间的关联

楼层直达
级别: 管理员
发帖
27834
飞翔币
1567
威望
888
飞扬币
130171
信誉值
0

 是否想知道该进程在你的系统中开了什么端口?
  一、根据进程查端口号
  首先在开始菜单的“运行”框中输入“cmd.exe”进入命令提示符窗口,先键入“tasklist”命令将列出系统正在运行的进程列表,把你要查的进程所对应的“PID”号记下或复制。如下图:

  需要注意的是,相同的进程 图像名 每次运行的“PID”号一般都不会相同,所以一旦该进程重启后,该“PID”号就会改变,这就需要重新查看。
  把进程的PID号记下后,接下来就用这个PID号把该进程所开的端口显示出来了。
  例如我们要看进程“QQ.exe”(上图中得知该进程ID号为:1332)开启了那些端口,在当前的命令符下继续键入“netstat -ano | findstr 1332”命令,其中“netstat -ano”参数表示以数字形式显示所有活动的TCP连接以及计算机正在侦听的TCP、UDP端口,并且显示对应的进程ID PID 号;“|findstr 1332”表示查找进程PID为“1332”的TCP连接以及TCP、UDP端口的侦听情况(在实际应用中,需要把你刚才记下或复制的PID号替换掉这里的1332)。按“回车”键后,就会显示出该进程所开的端口号。如下图:

  从上图中我们可以明显地看出,PID为“1332”的进程所开启的所有端口,如果此时没有任何提示信息返回,则说明该进程没有开启任何端口。
  二、根据端口号查进程
  在命令提示符窗口中输入“netstat -ano”命令,列出系统当前的端口列表,该命令的作用已在上面提过了。
  -o参数的作用主要是显示各端口对应的进程PID号,现在把你要查的端口对应的进程PID号记下或复制。
  然后在命令提示符下继续输入“tasklist /fi ″PID eq 788 ″”(在实际应用中,需要把你复制或记下的PID号替换掉这里的788),
  这行语句“/fi”参数表示在“tasklist”中筛选,而“PID eq 788”则是指定筛选的条件,按“回车”键后,就会显示出端口对应的进程。
  可以看出,PID号为“788”所对应的进程为“svchost.exe”,如果你查的端口没有关联任何进程的话,
  此时就会返回“没有运行带有指定标准的任务”的提示信息。
  三、查出进程对应的程序
  知道了端口和进程的关联后,如何再进一步查出该进程是那个软件或程序的进程呢?
  下面的操作就需要用到Windows 2000(Server或Professional版都可以)安装光盘中的一个工具。
  首先在安装光盘的“SupportTools”目录下,用解压软件打开“support.cab”压缩包,找到“tlist.exe”文件,将此文件释放到任一目录,
  如“D:Support”。然后在命令提示符窗口中切换到此目录,运行“tlist.exe”命令,
  把要查的进程对应的PID号记下或复制(第一列就是进程的PID号),
  然后继续输入“tlist.exe 2012”命令(你输入的时候,需要将刚才记下的PID号替换掉这里的2012),
  “CmdLine ”后面显示的就是该进程对应的软件所在的目录。
  除此之外,返回信息中还列出了该进程所调用的文件,得到了这些信息就可以很容易查出进程对应的程序了。
  假如想关闭某个进程,可把该进程的PID号记下,在命令提符下输入“taskkill /pid 2400” 2400是PID号)
  就可以将PID号为2400的进程关闭,如果要强制关闭该进程,只须在这条命令的后面加个“/f”参数即可。
  或者用ntsd -c q -p pid (实际应用中,pid要换成实际的pid号)