[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
试了好久,终于
@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

这个可以全盘搜索并删除了

TOP

但又奇怪了
想删除(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

却不能处理,也没有提示,请大家看看,不知什么问题

TOP

本帖最后由 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等文件,是不是一直往下加程序呀,有没有优化的方法?

TOP

弱弱的问一下,”见 15 楼签名档“是什么

TOP

谢谢,
但acad.mnl文件不能处理

TOP

本帖最后由 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 里面的病毒语句,请稍候...
已完成处理
请按任意键继续...

然后所有那些病毒的文件没有变化。

TOP

我自已又拼了一个程序来试
@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个小时左右不动(电脑没死机),就关掉程序了,有几次这样的情况,显示正在处理文件的目录不一样。

首先,请帮忙解决带空格文件夹路路径的问题?

TOP

谢谢,可以解决带空格的目录文件了,继续研究中

TOP

本帖最后由 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:""
有问题,应该是要转义,不知道怎么转义
求帮忙

TOP

解决上面第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)))
应该是转义的问题,求帮忙

TOP

我试了半天,好像用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)))
有点难呀

TOP

1、好像差不多的传播原理。
2、上面代码是在什么文里的?
3、如何杀毒的?

TOP

好,明天回公司找找,谢谢

TOP

返回列表