如何判断进程是否存在?
3个回答
2013-07-25
展开全部
生成一个当前进程的yc.csv文件列表,然后输入:
FC g:\zccsv g:\yc.csy
回车后就可以看到前后列表文件的不同了,通过比较发现,电脑多了一个名为“Winion0n.exe”(这里以这个进程为例)不是“Winionon.exe”的异常进程。
对这样的可疑进程,如何判断它是否是病毒呢?根据大部分病毒(特别是木马)会通过端口进行对外连接来传播病毒,可以查看一下端口占有情况。
在命令提示符下输入:
Netstat -a-n-o
参数含义如下:
a:显示所有与该主机建立连接的端口信息
n:显示打开端口进程PID代码
o:以数字格式显示地址和端口信息
回车后就可以看到所有开放端口和外部连接进程,这里一个PID为1756(以此为例)的进程最为可疑,它的状态是“ESTABLISHED”,通过任务管理器可以知道这个进程就是“Winion0n.exe”,通过查看本机运行网络程序,可以判断这是一个非法连接!
连接参数含义如下:
LISTENINC:表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接,只有TCP协议的服务端口才能处于LISTENINC状态。
ESTABLISHED的意思是建立连接。
表示两台机器正在通信。
TIME-WAIT意思是结束了这次连接。
说明端口曾经有过访问,但访问结束了,用于判断是否有外部电脑连接到本机。
虽然知道 “Winion0n.exe”是个非法进程,但是很多病毒的进程无法通过任务管理器终止,怎么办?
在命令提示符下输入下列命令:
ntsd –c q-p 1756
回车后可以顺利结束病毒进程。
提示:“1756”为进程PID值,如果不知道进程的ID,打开任务管理器,单击“查看→选择列→勾上PID(进程标识符)即可。
NTSD可以强行终止除Sytem,SMSS.EXE,CSRSS.EXE外的所有进程。
对于已经判断是病毒文件的“Winion0n.exe”文件,通过搜索“本地所有分区”、“搜索系统文件夹和隐藏的文件和文件夹”,找到该文件的藏身之所,将它删除。
不过这样删除的只是病毒主文件,通过查看它的属性,依据它的文件创建曰期、大小再次进行搜索,找出它的同伙并删除。
如果你不确定还有那些文件是它的亲戚,通过网络搜索查找病毒信息获得帮助还需要把这些垃圾清除干净。
1、用reg export备份自启动。
由于自启动键值很多,发现病毒时手动查找很不方便。
这里用reg export+批处理命令来备份。
启动记事本输入下列命令:
reg export HKLM\software\Microsoft\Windows\
CurrentVersion\Run fo:\hklmrun.reg
reg export HKCU\Software\Microsoft\Windows\
CurrentVersion\Policies\Explorer\Run f:\hklcu.reg
reg export HKLM\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\Explorer\Run hklml.reg
注:这里只列举几个常见键值的备份,其它键值请参照上述方法制作。
然后将它保存为ziqidong.bat在命令提示符下运行它,即可将所有自启动键值备份到相应的reg文件中,接着再输入:
copy f:\*.reg ziqidong.txt
命令的作用是将所有备份的reg文件输出到“ziqidong.txt”中,这样如果发现病毒新增自启动项,同上次导出自启动值,利用上面介绍的FC命令比较前后两个txt文件,即可快速找出新增自启动项目。
2、用reg delete删除新增自启动键值。
比如:通过上面的方法在[HKER_CURRENT_USER\SOFTWARE\Microsoft\
Windows\CurrentVersion\Run],找到一个“Logon”自启动项,启动程序为“c:\windows\winlogon.exe”,现在输入下列命令即可删除病毒自启动键值:
reg delete HKLM\software\Microssoft\Windows\
CurrentVersion\Run /f
3、用reg import恢复注册表。
Reg de-lete删除是的是整个RUN键值,现在用备份好的reg文件恢复即可,输入下列命令即可迅速还原注册表:reg import f:\hklmrun.reg
上面介绍手动杀毒的几个系统命令,其实只要用好这些命令,我们基本可以KILL掉大部分的病毒,当然平时就一定要做好备份工作。
提示:上述操作也可以在注册表编辑器里手动操作,但是REG命令有个好处,那就是即使注册表编辑器被病毒设置为禁用,也可以通过上述命令导出/删除/导入操作,而且速度更快!
FC g:\zccsv g:\yc.csy
回车后就可以看到前后列表文件的不同了,通过比较发现,电脑多了一个名为“Winion0n.exe”(这里以这个进程为例)不是“Winionon.exe”的异常进程。
对这样的可疑进程,如何判断它是否是病毒呢?根据大部分病毒(特别是木马)会通过端口进行对外连接来传播病毒,可以查看一下端口占有情况。
在命令提示符下输入:
Netstat -a-n-o
参数含义如下:
a:显示所有与该主机建立连接的端口信息
n:显示打开端口进程PID代码
o:以数字格式显示地址和端口信息
回车后就可以看到所有开放端口和外部连接进程,这里一个PID为1756(以此为例)的进程最为可疑,它的状态是“ESTABLISHED”,通过任务管理器可以知道这个进程就是“Winion0n.exe”,通过查看本机运行网络程序,可以判断这是一个非法连接!
连接参数含义如下:
LISTENINC:表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接,只有TCP协议的服务端口才能处于LISTENINC状态。
ESTABLISHED的意思是建立连接。
表示两台机器正在通信。
TIME-WAIT意思是结束了这次连接。
说明端口曾经有过访问,但访问结束了,用于判断是否有外部电脑连接到本机。
虽然知道 “Winion0n.exe”是个非法进程,但是很多病毒的进程无法通过任务管理器终止,怎么办?
在命令提示符下输入下列命令:
ntsd –c q-p 1756
回车后可以顺利结束病毒进程。
提示:“1756”为进程PID值,如果不知道进程的ID,打开任务管理器,单击“查看→选择列→勾上PID(进程标识符)即可。
NTSD可以强行终止除Sytem,SMSS.EXE,CSRSS.EXE外的所有进程。
对于已经判断是病毒文件的“Winion0n.exe”文件,通过搜索“本地所有分区”、“搜索系统文件夹和隐藏的文件和文件夹”,找到该文件的藏身之所,将它删除。
不过这样删除的只是病毒主文件,通过查看它的属性,依据它的文件创建曰期、大小再次进行搜索,找出它的同伙并删除。
如果你不确定还有那些文件是它的亲戚,通过网络搜索查找病毒信息获得帮助还需要把这些垃圾清除干净。
1、用reg export备份自启动。
由于自启动键值很多,发现病毒时手动查找很不方便。
这里用reg export+批处理命令来备份。
启动记事本输入下列命令:
reg export HKLM\software\Microsoft\Windows\
CurrentVersion\Run fo:\hklmrun.reg
reg export HKCU\Software\Microsoft\Windows\
CurrentVersion\Policies\Explorer\Run f:\hklcu.reg
reg export HKLM\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\Explorer\Run hklml.reg
注:这里只列举几个常见键值的备份,其它键值请参照上述方法制作。
然后将它保存为ziqidong.bat在命令提示符下运行它,即可将所有自启动键值备份到相应的reg文件中,接着再输入:
copy f:\*.reg ziqidong.txt
命令的作用是将所有备份的reg文件输出到“ziqidong.txt”中,这样如果发现病毒新增自启动项,同上次导出自启动值,利用上面介绍的FC命令比较前后两个txt文件,即可快速找出新增自启动项目。
2、用reg delete删除新增自启动键值。
比如:通过上面的方法在[HKER_CURRENT_USER\SOFTWARE\Microsoft\
Windows\CurrentVersion\Run],找到一个“Logon”自启动项,启动程序为“c:\windows\winlogon.exe”,现在输入下列命令即可删除病毒自启动键值:
reg delete HKLM\software\Microssoft\Windows\
CurrentVersion\Run /f
3、用reg import恢复注册表。
Reg de-lete删除是的是整个RUN键值,现在用备份好的reg文件恢复即可,输入下列命令即可迅速还原注册表:reg import f:\hklmrun.reg
上面介绍手动杀毒的几个系统命令,其实只要用好这些命令,我们基本可以KILL掉大部分的病毒,当然平时就一定要做好备份工作。
提示:上述操作也可以在注册表编辑器里手动操作,但是REG命令有个好处,那就是即使注册表编辑器被病毒设置为禁用,也可以通过上述命令导出/删除/导入操作,而且速度更快!
2013-07-25
展开全部
可以使用 foreach 语句 + process来实现检查进程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-25
展开全部
foreach (Process thisproc in System.Diagnostics.Process.GetProcesses())
{
if (thisproc.ProcessName == "")
{
return;
}
}
{
if (thisproc.ProcessName == "")
{
return;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询