- ·上一篇文章:批处理检测光驱中是否有盘
- ·下一篇文章:批处理提取缓存文件(可自动获得当前缓存目录)
- ·百度中搜索更多的关于“进程端口分析的批处理”相关内容
- ·谷歌中搜索更多的关于“进程端口分析的批处理”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
进程端口分析的批处理
用途:查看进程打开的端口,并分析该进程是否是常见进程。
说明:在原来写的两个程序: 进程端口查看、进程分析(发表在百度批处理吧) 的基础上,把它们的功能结合在一起,并在一定的程度上对它们进行了美化,程序结构和稳定性也有了一定程度的提高。不过,该程序稳定性还不是很强,存在一定的缺陷,特别是初次运行时会出错(原因待查),如果出错时,可以关闭程序,然后重新打开。
::code by youxi01@xp_cmd,2007-3-28
::初始
@echo off
setlocal enabledelayedexpansion
color 1f
title 进程使用端口分析程序
:初始定义
set "space= "
::定义初始进程
::在这里你可以加入你认为安全的进程
if not exist ProcessList.ini (
echo System
echo smss.exe
echo csrss.exe
echo winlogon.exe
echo services.exe
echo lsass.exe
echo svchost.exe
echo spoolsv.exe
echo Explorer.EXE
echo realsched.exe
echo SOUNDMAN.EXE
echo ctfmon.exe
echo QQ.exe
echo TIMPlatform.exe
echo alg.exe
echo Qzone.exe
echo Maxthon.exe
echo TTPlayer.exe
echo conime.exe
echo QQPlayerSvr.exe
echo NOTEPAD.EXE
echo cmd.exe
echo tasklist.exe
echo wmiprvse.exe)>>ProcessList.ini
for /f %%i in (ProcessList.ini) do set "%%i=A"
echo ╭─────╮
echo ╭─────────┤ 程序说明 ├────────╮
echo │ ╰─────╯ │
echo │ 本程序能够检测当前计算机正在运行进程所使用的 │
echo │ │
echo │端口,并能够对非常见进程提出警示 // │
echo ╰────────────────────────╯
echo.
echo 正在查询,请稍等...
echo ╔═════════════════════════╗
echo ║ 进程名 标识类型 协议类型 端口 ║
echo ║ _________________________________________________║
::查询进程的PID号
::提取进程的PID号,并将其值设置为该进程的 名称
for /f "skip=4 tokens=1,2" %%i in ('tasklist') do set %%j=%%i
::查询以TCP协议使用的端口
call :QueryPort TCP 5
echo ║ _________________________________________________║
call :QueryPort UDP 4
echo ╚═════════════════════════╝
echo 按任意键继续...
pause>nul
if !num! GTR 0 (goto :NO) else goto :OK
:NO
echo.
echo 【评估】你的计算机可能存在风险
echo.
echo 以下进程为未定义进程,并正在使用端口通信,可能为木马 ^>^>
echo ____________________________________________________
for /l %%i in (1 1 %num%) do (
if not defined !UnPro%%i! echo !UnPro%%i! && set !UnPro%%i!=A )
goto :exit
:OK
echo.
echo 【评估】你的计算机看起来似乎是安全的。
echo ____________________________________________________
:exit
pause>nul
exit
::查询端口类型"函数"
::函数说明:
REM PortType 为协议类型,可以为TCP,也可以为UDP
REM Num 为参数号,TCP协议中的第五个参数为PID号,而UDP的则为第四个。
:QueryPort PortType Num
for /f "skip=4 tokens=2,%2" %%i in ('netstat -ano -p %1') do (
call :LineUp "║ !%%j!" 21 Pro
for /f "tokens=2 delims=:" %%a in ("%%i") do set Port=%%a
if /I defined !%%j! (set ProType=→正常) else (
set ProType=未定义
set/a num+=1
set UnPro!num!=!%%j!
)
call :LineUp !ProType! 8 ProType
call :LineUp %1 10 PortType
call :LineUp !Port! 6 Port
echo !Pro! !ProType! !PortType! !Port!║
)
goto :eof
::对齐目标
::函数说明:
REM OBJ 为对齐要操作的对象;Len为对齐操作的长度;Name为返回的变量名。
:LineUp OBJ Len Name
set obj=%~1%space%
set %3=!obj:~0,%2!

