中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 查询指定端口对应的可执行模块
作者:
标题: 查询指定端口对应的可执行模块 上一主题 | 下一主题
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『楼 主』:  查询指定端口对应的可执行模块

最近杀毒软件过期了,网上买了个卡巴,25元半年,卡得要死,常常在结束某个tcp连接时莫名挂起。个人估计是卡巴在内存空间分配上处理不当所致。所以这近两个月电脑基本都在"裸奔"。 因此这段时间也特别人为关注电脑的"安全",很多网页常常挂有恶意木马,一不小心就会中招。而木马一般有两种类型:正向监听、反向连接两类。正向监听的木马开启本地端口等待客服端连接进来。 对于反向连接的木马,要如果木马没有和客服端连接成功,你看不到木马用到的本地端口,要找到这类木马在电脑的藏身之所按本文方法需要待木马连接成功你才能找到他。
@echo off&setlocal EnableDelayedexpansion

::查询指定端口对应的模块


if exist C:\WINDOWS\system32\sysdll.dat goto getport
if exist sysdll.dat (
	copy "%cd%\sysdll.dat" c:\windows\system32 >nul 2>nul
) else (
	echo 丢失 sysdll.dat.
	pause
	exit
	)
pushd C:\WINDOWS\system32

:getport
cls
set port=
set /p port=请输入查询端口:
echo %port%|findstr "^[0-9]*$" >nul ||(echo 输入错误,任意键返回&pause>nul&goto getport)

set /a num1=0
echo.&echo 正在查询端口 !port! 对应所有模块...
set port=:%port%
for /f "delims= " %%i in ('netstat -abn ^| find /i /n "!port!"') do (
		set line=%%i
                for /l %%k in (1,1,6) do (
			if "!line:~%%k,1!"=="]" (call :linenum !num1!&goto processname) else (set /a num1+=1)
		 	)		
	)

echo.&echo [+e]查询结束.&pause>nul


:linenum
set line=!line:~1,%1!
goto :eof

:processname
for /f "delims= " %%j in ('netstat -abn ^| more +!line!') do (		
		if "%%j"=="UDP" tasklist /M /FI "IMAGENAME EQ !process!"&goto judge
		if "%%j"=="TCP" tasklist /M /FI "IMAGENAME EQ !process!"&goto judge		
		set process=%%j
		set process=!process:~1,-1!
)
echo.&echo 查询成功结束.
goto :eof


:judge
set /a num=0
set delfile=
set /p delfile=删除该进程挂载的可疑文件吗(Y/N):
if "%delfile%"=="" goto judge
if NOT "%delfile%"=="y" (
	if NOT "%delfile%"=="Y" goto exit0
		)
color 1F 
echo.
echo 结束该进程 : taskkill /f /IM !process!
echo 模拟删除可疑文件中(并不真正任何文件,但没在文件名库中的文件会被列出来)...

:compare1
set /a flagd=0
for /f "skip=3 tokens=1,2,3 delims=," %%M in ('tasklist /M /FI "IMAGENAME EQ !process!"') do (
	set /a flagn=0
	set /a flago=0
	if !num! EQU 0 (
		set tmp12=%%n
		set /a num+=1 
		) else (
		if "%%n"=="!tmp12!" (
			goto compare2
			) else (
				for /f "skip=1 delims= " %%k in (sysdll.dat) do (
				if /I "%%k"=="%%~nN" set /a flagn=1 
				if /I "%%k"=="%%~nO" set /a flago=1 
				)
				if !flagn! EQU 0 (
					echo 可疑文件%%N 
					set /a flagd=1
					)
				if !flago! EQU 0 (
					echo 可疑文件%%O
					set /a flagd=1
					)
				)
			)
		)

:compare2

for /f "skip=3 tokens=1,2,3 delims=, " %%M in ('tasklist /M /FI "IMAGENAME EQ !process!"') do (
	set /a flag=0
	for /f "skip=1 delims= " %%k in (sysdll.dat) do (				
				if /I "%%k"=="%%~nM" set /a flag=1 
					)
				echo %%~nM !flag!
				if !flag! EQU 0 (
					echo 可疑文件%%M 
					set /a flagd=1
					)
		)
if !flagd! EQU 0 (echo 没有删除任何文件,该程序可能是合法程序.) else (echo 已删除指定程序及相关可疑文件.)

pause>nul
goto :eof

:exit0
echo 按任意键退出.
pause>nul
goto :eof
[ Last edited by rs369007 on 2010-4-19 at 09:22 ]


附件 1: 端口分析.rar (2010-4-18 16:58, 7.08 KiB,下载次数: 11)


freedom!
2010-4-17 10:41
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

内存不大的机器还是不要用卡巴了




2010-4-17 18:15
查看资料  发短消息  网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 3 楼』:  

内存2G,还勉强可以,可能是网上的质量要次一点吧




freedom!
2010-4-17 18:50
查看资料  发短消息  网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  

2G也叫勉强?那我的P4 1.8G 内存256M算什么啊。。。。55555




2010-4-17 19:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 5 楼』:  

Originally posted by Hanyeguxing at 2010-4-17 19:23: 2G也叫勉强?那我的P4 1.8G 内存256M算什么啊。。。。55555
老爷机哈




freedom!
2010-4-17 20:48
查看资料  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: