中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 11:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 查询指定端口对应的可执行模块 查看 1,007 回复 4
楼 主 查询指定端口对应的可执行模块 发表于 2010-04-17 10:41 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
最近杀毒软件过期了,网上买了个卡巴,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 "^*$" >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 查询结束.&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 ]
附件
端口分析.rar (7.08 KiB, 下载次数: 11)
freedom!
2 发表于 2010-04-17 18:15 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
内存不大的机器还是不要用卡巴了
3 发表于 2010-04-17 18:50 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
内存2G,还勉强可以,可能是网上的质量要次一点吧
freedom!
4 发表于 2010-04-17 19:23 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
2G也叫勉强?那我的P4 1.8G 内存256M算什么啊。。。。55555
5 发表于 2010-04-17 20:48 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
Originally posted by Hanyeguxing at 2010-4-17 19:23:
2G也叫勉强?那我的P4 1.8G 内存256M算什么啊。。。。55555


老爷机哈
freedom!
论坛跳转: