公司的电脑老是中cad病毒,杀毒软件一杀毒就会破坏cad,我想编写个清除程序
时间:2011-09-03
来源:互联网
公司的电脑老是中cad病毒,杀毒软件一杀毒就会破坏cad,我想编写个清除程序.
cad病毒只是感染lisp和mnl 文件,文本格式,就是在这些文件后面加上病毒自己的代码。
论坛里面的朋友给了我一个算法,就是把cad病毒的代码找到,并将其替换为 空格。
例如cad病毒的开头为setq flagx 结尾为 acadappp
guanjian = "setq flagx t\)[\s\S]*?acadappp*?"
Dim ff, gg
Dim v, i%
v = Split(fileStr("c:\temp111.txt"), vbCrLf) '你的文件路径111.txt,建议写绝对路径
For i = 0 To UBound(v)
If v(i) <> "" Then
ff = SetFileAttributes(v(i), FILE_ATTRIBUTE_NORMAL)
writeToFile v(i), replaceEx(fileStr(v(i)))
End If
gg = SetFileAttributes(v(i), FILE_ATTRIBUTE_READONLY)
Next
这个貌似后来发现有几个问题,cad病毒感染的都是文本文件,所以只要处理文本文件即可。
可以这个问题简化为文本处理
问题在于,这个程序遇到奇怪字符,例如广夏的lisp文件里面就有 ,会导致文件被清空。
还有如果一个lisp文件里面有病毒重复生成的代码,这一段程序只能清除第一段。
我想这样做,不用替换法,而用检查法,
一旦检测到病毒代码第一行,例如setq flagx 就将这行以后的全部删除。
求算法或者代码
cad病毒只是感染lisp和mnl 文件,文本格式,就是在这些文件后面加上病毒自己的代码。
论坛里面的朋友给了我一个算法,就是把cad病毒的代码找到,并将其替换为 空格。
例如cad病毒的开头为setq flagx 结尾为 acadappp
guanjian = "setq flagx t\)[\s\S]*?acadappp*?"
Dim ff, gg
Dim v, i%
v = Split(fileStr("c:\temp111.txt"), vbCrLf) '你的文件路径111.txt,建议写绝对路径
For i = 0 To UBound(v)
If v(i) <> "" Then
ff = SetFileAttributes(v(i), FILE_ATTRIBUTE_NORMAL)
writeToFile v(i), replaceEx(fileStr(v(i)))
End If
gg = SetFileAttributes(v(i), FILE_ATTRIBUTE_READONLY)
Next
这个貌似后来发现有几个问题,cad病毒感染的都是文本文件,所以只要处理文本文件即可。
可以这个问题简化为文本处理
问题在于,这个程序遇到奇怪字符,例如广夏的lisp文件里面就有 ,会导致文件被清空。
还有如果一个lisp文件里面有病毒重复生成的代码,这一段程序只能清除第一段。
我想这样做,不用替换法,而用检查法,
一旦检测到病毒代码第一行,例如setq flagx 就将这行以后的全部删除。
求算法或者代码
作者: ftmm123 发布时间: 2011-09-03
原来我写的代码把全盘搜索结果 都是所有lisp和mnl文件的具体路径
VB code
VB code
Open "c:\temp1111.txt" For Input As #6 '全盘搜索结果 都是所有lisp和mnl文件的具体路径放到这个文件里c:\temp1111.txt这个文件是搜索结果。 Open "c:\temp111.txt" For Output As #7 对其进行处理后输入到这个文件c:\temp111.txt是最终处理结果,将被送入下一个模块中,进行病毒替换。 Do Until EOF(6) Line Input #6, content ' 读取,去掉搜索产生的“号, bb = strReplace(content) aaaa = FileLen(bb) If aaaa > 200000 Then '检测大小,大于20000的文件删除, DeleteFile bb Else cc = bb End If 'On Error Resume Next Open cc For Input As #8 On Error Resume Next Line Input #8, content1 If content1 <> "AutoCAD PROTECTED LISP file" Then '如果具体文件内容中带有AutoCAD PROTECTED LISP file就放弃处理。 Print #7, bb Close 8 Else Close 8 End If Loop Close #6, #7
作者: ftmm123 发布时间: 2011-09-03
Line Input #8, content1
If content1 <> "AutoCAD PROTECTED LISP file" Then '如果具体文件内容中带有AutoCAD PROTECTED LISP file就放弃处理。
Print #7, bb
Close 8
Else
Close 8
End If
Loop
Close #6, #7
我就是想改进这一段,这一段,检测到"AutoCAD PROTECTED LISP file"的时候会放弃,我想改为,检测到
setq flagx t字符的时候,能把文本文件的从setq flagx t开始后面的所有的都删除,如果写入另外一个文件也不难,难就难在如何修改自身?请问算法!!!
If content1 <> "AutoCAD PROTECTED LISP file" Then '如果具体文件内容中带有AutoCAD PROTECTED LISP file就放弃处理。
Print #7, bb
Close 8
Else
Close 8
End If
Loop
Close #6, #7
我就是想改进这一段,这一段,检测到"AutoCAD PROTECTED LISP file"的时候会放弃,我想改为,检测到
setq flagx t字符的时候,能把文本文件的从setq flagx t开始后面的所有的都删除,如果写入另外一个文件也不难,难就难在如何修改自身?请问算法!!!
作者: ftmm123 发布时间: 2011-09-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28