|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『楼 主』:
DLL木马查杀工具--浪子出品-附源码!~
本人作品,需要配合本人作品 进程分析工具 同时使用!~以下是源码,希望各位给予改正错误,完善代码功能!~
目前有几点没能实现:
1,无法区分被病毒感染的DLL或者EXE文件,需要手动比较原文件和现文件的大小
2,无法恢复被病毒感染的DLL文件,只能强制删除...一旦删除无法复原.....
3,由于懒,故没把它做的智能点,如检测到不是初次扫描就自动转到第2次扫描并分析等问题
4,可能存在未知的缺陷,希望大家帮忙提出,和完善!
:dllkill
@echo off
color A
cls
title DLL木马查杀工具--by 逍遥@浪子@
@echo ************************************************************
@echo # #
@echo # 欢迎使用DLL木马查杀工具 #
@echo # #
@echo ************************************************************
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:扫描并生成日志 2:生成第2次日志并列出不同 3:关于作者
@echo.
@echo 4:注销可疑的DLL文件 5:删除可疑的EXE文件 6:退出本程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3、4、5、6 )
@if "%UserSelection%"=="1" goto scheng1
@if "%UserSelection%"=="2" goto scheng2
@if "%UserSelection%"=="3" goto zuozhe
@if "%UserSelection%"=="4" goto zhuxiaodll
@if "%UserSelection%"=="5" goto delexe
@if "%UserSelection%"=="6" goto here
:scheng1
cls
cd c:\windows\system32
dir *.exe>exeback1.txt
start exeback1.txt
dir *.dll>dllback1.txt
start dllback1.txt
@echo ************************************************************
@echo # #
@echo # 已经将扫描日志输出,请按任意键返回! #
@echo # #
@echo ************************************************************
@pause>nul 2>nul
@GOTO dllkill
:scheng2
cls
cd c:\windows\system32
dir *.exe>exeback2.txt
start exeback2.txt
dir *.dll>dllback2.txt
start dllback2.txt
@echo ************************************************************
@echo # #
@echo # 已经将第2次日志输出,是否立刻分析不同? #
@echo # #
@echo ************************************************************
@echo 请输入以下选项前面的数字
@echo.
@echo 1:是的,立刻分析下! 2:不了,返回吧!
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto bijiao3
@if "%UserSelection%"=="2" goto dllkill
:bijiao3
cls
fc exeback1.txt exeback2.txt>diff.txt
start diff.txt
fc dllback1.txt dllback2.txt>dif.txt
start dif.txt
@echo ************************************************************
@echo # #
@echo # 已经将比较结果输出,请按任意键返回! #
@echo # #
@echo ************************************************************
@pause>nul 2>nul
@GOTO dllkill
:zuozhe
@cls
@echo ************************************************************
@echo # #
@echo # 欢迎使用DLL木马查杀工具 #
@echo # 功能: #
@echo # #
@echo # 自动记录系统SYSTEM32文件下面的DLL及EXE文件,并将多出 #
@echo # #
@echo # 的文件显示出来,用来区别病毒,方便新手手动删除病毒 。 #
@echo # #
@echo # 不要害怕病毒,矛与盾的较量永远不会终止,凡事靠自己! #
@echo # #
@echo # 版本号 修订日期 修订人 修订内容 #
@echo # #
@echo # 1.0 2007-05-27 逍遥@浪子@ 编写本脚本 #
@echo # #
@echo # 特别感谢DOS联盟,以及冰的原点,LEY等朋友的支持! #
@echo # #
@echo # 本人网志:http://hi.baidu.com/逍遥问 QQ:422547345 #
@echo # #
@echo ************************************************************
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:去浪子网志转转 2:立刻发消息给浪子 3:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3)
@if "%UserSelection%"=="1" goto boker
@if "%UserSelection%"=="2" goto lianxi
@if "%UserSelection%"=="3" goto start
:boker
@start http://hi.baidu.com/逍遥问
@echo.
@echo 按任意键返回
@pause>nul 2>nul
@goto dllkill
:lianxi
@start tencent://Message/?Uin=%422547345%
@echo.
@echo 按任意键返回
@pause>nul 2>nul
@goto dllkill
:zhuxiaodll
cls
cd c:\windows\system32
set /p UserSelection=请输入要注销的DLL文件
regsvr32 /u "%UserSelection%"
@echo.
@echo 已经成功注销了该DLL文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着注销DLL文件 2:删除可疑DLL文件 3:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3 )
@if "%UserSelection%"=="1" goto zhuxiaodll
@if "%UserSelection%"=="2" goto deldll
@if "%UserSelection%"=="3" goto dllkill
:deldll
cls
cd c:\windows\system32
set /p UserSelection=请输入要删除的DLL文件
attrib -h -s -r "%UserSelection%"
del "%UserSelection%"
@echo.
@echo 已经成功删除了该DLL文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着删除DLL文件 2:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto deldll
@if "%UserSelection%"=="2" goto dllkill
:delexe
cls
cd c:\windows\system32
set /p UserSelection=请输入要删除的EXE文件
attrib -h -s -r "%UserSelection%"
del "%UserSelection%"
@echo.
@echo 已经成功删除了该EXE文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着删除EXE文件 2:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto delexe
@if "%UserSelection%"=="2" goto dllkill
:here
@cls
@echo.
@echo \\\^|///
@echo \\ .-.- //
@echo ( .@.@ )
@echo +-------oOOo-----(_)-----oOOo----------+
@echo ^| ^|
@echo ^| 感谢使用!是否确定退出本程序? ^|
@echo ^| ^|
@echo +----------oooO-------Oooo-------------+
@echo 请输入以下选项前面的数字
@echo.
@echo 1:是的,立即退出 2:不,返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2)
@if "%UserSelection%"=="1" goto END
@if "%UserSelection%"=="2" goto dllkill
:END
cd c:\windows\system32
del exeback2.txt
del dllback2.txt
del dif.txt
del diff.txt
@GOTO QUIT
[ Last edited by luckboy45 on 2007-5-30 at 06:57 PM ]
|
逍遥@浪子@反病毒 |
|
2007-5-30 18:40 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
2 楼』:
Quote: | 目前有几点没能实现:
1,无法区分被病毒感染的DLL或者EXE文件,需要手动比较原文件和现文件的大小
2,无法恢复被病毒感染的DLL文件,只能强制删除...一旦删除无法复原.....
3,由于懒,故没把它做的智能点,如检测到不是初次扫描就自动转到第2次扫描并分析等问题
4,可能存在未知的缺陷,希望大家帮忙提出,和完善! |
|
1、如果根据大小来判断是否被感染病毒的话,可以先生成一个含有文件大小信息的比较文件,比如(compexe.txt),再用扫描后的新文件和它比较(fc 、findstr、find)。
2、如果有备份的话,就可以直接覆盖过去,当然要排除一些顽固病毒。就目前来讲,批处理还没有杀毒的能力(也可能有牛人结合汇编+bat实现了也说不定),所以这个比较棘手。
3、检测是否进行过第一次扫描,可以利用if命令来判断第一次扫描的文件是否存在,在根据是否存在来做相应的处理。
4、大略的看了一下原代码,提出了一些小建议,如下:
Quote: | :dllkill
@echo off
color A
cls
title DLL木马查杀工具--by 逍遥@浪子@
@echo ************************************************************
@echo # #
@echo # 欢迎使用DLL木马查杀工具 #
@echo # #
@echo ************************************************************
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:扫描并生成日志 2:生成第2次日志并列出不同 3:关于作者
@echo.
@echo 4:注销可疑的DLL文件 5:删除可疑的EXE文件 6:退出本程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3、4、5、6 )
@if "%UserSelection%"=="1" goto scheng1
@if "%UserSelection%"=="2" goto scheng2
@if "%UserSelection%"=="3" goto zuozhe
@if "%UserSelection%"=="4" goto zhuxiaodll
@if "%UserSelection%"=="5" goto delexe
@if "%UserSelection%"=="6" goto here
rem (建议这里加一个goto :dllkill之类的语句跳转到开始,因为如果用户不是选择的1-6的数字,那么程序会自动的运行标签:scheng1下面的内容,下同)
:scheng1
cls
cd c:\windows\system32
dir *.exe>exeback1.txt
rem (这里的cd和dir建议直接用dir /b/a-d c:\windows\sysmte32\*.exe>exeback1.txt,下同)
start exeback1.txt
dir *.dll>dllback1.txt
start dllback1.txt
@echo ************************************************************
@echo # #
@echo # 已经将扫描日志输出,请按任意键返回! #
@echo # #
@echo ************************************************************
@pause>nul 2>nul
@GOTO dllkill
:scheng2
cls
cd c:\windows\system32
dir *.exe>exeback2.txt
start exeback2.txt
dir *.dll>dllback2.txt
start dllback2.txt
@echo ************************************************************
@echo # #
@echo # 已经将第2次日志输出,是否立刻分析不同? #
@echo # #
@echo ************************************************************
@echo 请输入以下选项前面的数字
@echo.
@echo 1:是的,立刻分析下! 2:不了,返回吧!
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto bijiao3
@if "%UserSelection%"=="2" goto dllkill
:bijiao3
cls
fc exeback1.txt exeback2.txt>diff.txt
start diff.txt
fc dllback1.txt dllback2.txt>dif.txt
start dif.txt
@echo ************************************************************
@echo # #
@echo # 已经将比较结果输出,请按任意键返回! #
@echo # #
@echo ************************************************************
@pause>nul 2>nul
@GOTO dllkill
:zuozhe
@cls
@echo ************************************************************
@echo # #
@echo # 欢迎使用DLL木马查杀工具 #
@echo # 功能: #
@echo # #
@echo # 自动记录系统SYSTEM32文件下面的DLL及EXE文件,并将多出 #
@echo # #
@echo # 的文件显示出来,用来区别病毒,方便新手手动删除病毒 。 #
@echo # #
@echo # 不要害怕病毒,矛与盾的较量永远不会终止,凡事靠自己! #
@echo # #
@echo # 版本号 修订日期 修订人 修订内容 #
@echo # #
@echo # 1.0 2007-05-27 逍遥@浪子@ 编写本脚本 #
@echo # #
@echo # 特别感谢DOS联盟,以及冰的原点,LEY等朋友的支持! #
@echo # #
@echo # 本人网志:http://hi.baidu.com/逍遥问 QQ:422547345 #
@echo # #
@echo ************************************************************
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:去浪子网志转转 2:立刻发消息给浪子 3:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3)
@if "%UserSelection%"=="1" goto boker
@if "%UserSelection%"=="2" goto lianxi
@if "%UserSelection%"=="3" goto start
:boker
@start http://hi.baidu.com/逍遥问
@echo.
@echo 按任意键返回
@pause>nul 2>nul
@goto dllkill
:lianxi
@start tencent://Message/?Uin=%422547345%
rem (这里的%422547245%中的%符号不用了吧?)
@echo.
@echo 按任意键返回
@pause>nul 2>nul
@goto dllkill
:zhuxiaodll
cls
cd c:\windows\system32
set /p UserSelection=请输入要注销的DLL文件
regsvr32 /u "%UserSelection%"
@echo.
@echo 已经成功注销了该DLL文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着注销DLL文件 2:删除可疑DLL文件 3:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2、3 )
@if "%UserSelection%"=="1" goto zhuxiaodll
@if "%UserSelection%"=="2" goto deldll
@if "%UserSelection%"=="3" goto dllkill
rem (这里应该加一个跳转,下同)
:deldll
cls
cd c:\windows\system32
set /p UserSelection=请输入要删除的DLL文件
attrib -h -s -r "%UserSelection%"
del "%UserSelection%"
@echo.
@echo 已经成功删除了该DLL文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着删除DLL文件 2:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto deldll
@if "%UserSelection%"=="2" goto dllkill
:delexe
cls
cd c:\windows\system32
set /p UserSelection=请输入要删除的EXE文件
attrib -h -s -r "%UserSelection%"
del "%UserSelection%"
@echo.
@echo 已经成功删除了该EXE文件!
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1:接着删除EXE文件 2:返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2 )
@if "%UserSelection%"=="1" goto delexe
@if "%UserSelection%"=="2" goto dllkill
:here
@cls
@echo.
@echo \\\^|///
@echo \\ .-.- //
@echo ( .@.@ )
@echo +-------oOOo-----(_)-----oOOo----------+
@echo ^| ^|
@echo ^| 感谢使用!是否确定退出本程序? ^|
@echo ^| ^|
@echo +----------oooO-------Oooo-------------+
@echo 请输入以下选项前面的数字
@echo.
@echo 1:是的,立即退出 2:不,返回主程序
@echo.
@set /p UserSelection=输入您的选择(1、2)
@if "%UserSelection%"=="1" goto END
@if "%UserSelection%"=="2" goto dllkill
:END
cd c:\windows\system32
rem (这里的cd建议加上/d参数)
del exeback2.txt
del dllback2.txt
del dif.txt
del diff.txt
rem (这里的几个del可以连写,比如del exeback2.txt dllback2.txt diff.txt dif.txt)
@GOTO QUIT
rem (这里的Quit标签哪里来的?建议用goto :EOF或者直接exit) |
|
|
|
2007-5-30 20:03 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
|
2007-5-30 20:49 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
4 楼』:
太小看病毒了吧?
文件的大小可以做到一样,时间也是可以修改的……regsvr32 /u是……dll文件自身提供了DllUnregisterServer的dll可用。
有没有发现一些DLL会提示:
已加载xxxx.dll,但没有找到DllUnregisterServer输入点。
无法注册这个文件。
P上有什么问题我就不清楚了,第一太长懒的看,2,P我很烂
|
|
2007-5-31 13:57 |
|
|
Tooom
新手上路
积分 1
发帖 1
注册 2007-5-31
状态 离线
|
|
2007-5-31 16:21 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
6 楼』:
呵呵,4楼的朋友说的问题确实存在,但有什么方法可以做到尽量避免呢?麻烦帮忙完善下!~
|
逍遥@浪子@反病毒 |
|
2007-5-31 18:21 |
|
|
my3439955
中级用户
积分 272
发帖 99
注册 2006-6-2
状态 离线
|
|
2007-5-31 22:30 |
|
|