![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 19:39 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » DLL木马查杀工具--浪子出品-附源码!~ |
| 可打印版本 1,007 / 6 |
| 第1楼 luckboy45 | 发表于 2007-05-30 18:40 |
| 中级用户 发帖 212 积分 487 | |
|
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 ] |
|
| 第2楼 lxmxn | 发表于 2007-05-30 20:03 |
| 版主 发帖 4,938 积分 11,386 | |
目前有几点没能实现: 1、如果根据大小来判断是否被感染病毒的话,可以先生成一个含有文件大小信息的比较文件,比如(compexe.txt),再用扫描后的新文件和它比较(fc 、findstr、find)。 2、如果有备份的话,就可以直接覆盖过去,当然要排除一些顽固病毒。就目前来讲,批处理还没有杀毒的能力(也可能有牛人结合汇编+bat实现了也说不定),所以这个比较棘手。 3、检测是否进行过第一次扫描,可以利用if命令来判断第一次扫描的文件是否存在,在根据是否存在来做相应的处理。 4、大略的看了一下原代码,提出了一些小建议,如下:
|
|
| 第3楼 luckboy45 | 发表于 2007-05-30 20:49 |
| 中级用户 发帖 212 积分 487 | |
|
呵呵,感谢楼主的完善,呵呵,学习了,十分感谢!~
|
|
| 第4楼 slore | 发表于 2007-05-31 13:57 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
太小看病毒了吧?
文件的大小可以做到一样,时间也是可以修改的……regsvr32 /u是……dll文件自身提供了DllUnregisterServer的dll可用。 有没有发现一些DLL会提示: 已加载xxxx.dll,但没有找到DllUnregisterServer输入点。 无法注册这个文件。 P上有什么问题我就不清楚了,第一太长懒的看,2,P我很烂 |
|
| 第5楼 Tooom | 发表于 2007-05-31 16:21 |
| 新手上路 发帖 1 积分 1 | |
|
支持:-)
|
|
| 第6楼 luckboy45 | 发表于 2007-05-31 18:21 |
| 中级用户 发帖 212 积分 487 | |
|
呵呵,4楼的朋友说的问题确实存在,但有什么方法可以做到尽量避免呢?麻烦帮忙完善下!~
|
|
| 第7楼 my3439955 | 发表于 2007-05-31 22:30 |
| 中级用户 发帖 99 积分 272 | |
|
大多数的DLL文件被加载了之后用regsvr32根本没用
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |