本帖最后由 hxq2015 于 2024-7-7 22:15 编辑
电脑硬盘莫名的被占用,发现里面的html和htm为后缀的网页文件体积都变大了,甚至有一个大到了600多到700多M了,网上查询了一下是感染了VSB病毒。杀毒软件又杀不掉,下载的修复软件不是要钱就是需连接远程协助,甚至好不容易下载了一个,没啥用。于是就自力更生,花了两天时间,写了一个,算不上完善,但够用了。硬盘空间一下就回来一大半了,被占的能发现的,我都弄回来了。为尽量简化,主要调用了精易模块。有方便的高手朋友,整完善一下再传我。这是成品界面截图,我没做美化,力求实用、够用。电脑硬盘容量前后对比图忘了截。下面附代码和附件。[e=4].版本 2
.支持库 eAPI
.支持库 iext
.程序集 窗口程序集_启动窗口
.程序集变量 磁盘, 文本型, , "0", 盘符数组
.程序集变量 列表文件, 文本型, , , 列表中全路径文件
.程序集变量 计次, 整数型, , , 超级列表框循环变量
.程序集变量 表项, 整数型, , , 超级列表框表项
.程序集变量 I, 整数型, , , 盘符循环变量
.程序集变量 原代码, 文本型, , , 读取感染文件内容
.程序集变量 区间代码, 文本型, , , 取出或者之前部分
VBS病毒感染文件修复.e
(577.78 KB, 下载次数: 5)
.程序集变量 超文件, 文本型, , , 超级列表框中全路径文件,与列表文件相同
.程序集变量 删除表项, 整数型, , "0", 超级列表框作筛选
.程序集变量 完成数, 整数型, , , 进度条进度
.子程序 __启动窗口_创建完毕, , , 得到盘符
磁盘 = 取驱动器列表 ()
I = 1
.判断循环首 (I ≤ 取数组成员数 (磁盘))
组合框1.加入项目 (磁盘 [I], )
I = I + 1
.判断循环尾 ()
组合框1.现行选中项 = 0
.子程序 _按钮1_被单击, , , 搜索文件
文件_搜索 (组合框1.取项目文本 (组合框1.现行选中项), 列表框1, “*.” + 编辑框1.内容, , , 真)
延时 (200)
标签1.标题 = “共搜到” + 到文本 (列表框1.取项目数 ()) + “条”
.如果真 (标签1.标题 ≠ “搜索条目”)
超级列表框1.全部删除 ()
.计次循环首 (列表框1.取项目数 (), 计次)
.判断开始 (寻找文本 (列表框1.取项目文本 (计次 - 1), 列表文件, , 假) ≠ -1)
列表文件 = 列表框1.取项目文本 (计次)
表项 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (表项, 0, 列表文件)
超级列表框1.置标题 (表项, 1, 到文本 (文件_取大小 (列表文件)))
.如果 (文件_取尺寸 (列表文件) > 50)
超级列表框1.置标题 (表项, 2, “疑似中毒”)
.否则
超级列表框1.置标题 (表项, 2, “文件正常”)
.如果结束
.默认
返回 ()
信息框 (“报歉,未搜索到你想要的”, 0, , )
.判断结束
.计次循环尾 ()
.如果真结束
.子程序 筛选
.计次循环首 (超级列表框1.取表项数 (), 计次)
.如果真 (超级列表框1.取标题 (计次 - 1, 2) = “文件正常”)
加入成员 (删除表项, 计次 - 1)
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (删除表项), 计次)
超级列表框1.删除表项 (删除表项 [计次] - 计次 + 1) ' +1是因为i是从1开始算的, -i+1是删除选中的第一项,,,每删除一项,后面的项的索引就会变小,所以要减一,前面删除了多少项就减多少
.计次循环尾 ()
延时 (200)
超级列表框1.保证显示 (计次)
超级列表框1.刷新显示 ()
列表框1.清空 ()
标签2.标题 = “分析共有” + 到文本 (超级列表框1.取表项数 ()) + “文件疑似中毒”
.子程序 _超级列表框1_表项被激活, , , 单个查看原代码
文件_定位 (超级列表框1.取标题 (超级列表框1.现行选中项, 0))
.子程序 _超级列表框1_右键单击表项, , , 取单个文件地址
置剪辑板文本 (超级列表框1.取标题 (超级列表框1.现行选中项, 0))
信息框 (“已复制,请粘贴”, 0, , )
.子程序 _按钮2_被单击, , , 进行修复
' 按钮3.禁止 = 真
筛选 ()
延时 (1000)
时钟1.时钟周期 = 1000
_时钟1_周期事件 ()
.如果真 (标签4.标题 = “已执行:100%”)
时钟1.时钟周期 = 0
进度条1.位置 = 0
.如果真结束
.子程序 _时钟1_周期事件
.计次循环首 (超级列表框1.取表项数 (), 计次)
超文件 = 超级列表框1.取标题 (计次 - 1, 0)
原代码 = 到文本 (读入文件 (超文件))
.如果 (寻找文本 (原代码, “svchost.exe”, , 真) = -1)
超级列表框1.置标题 (计次 - 1, 2, “文件正常”)
.否则
超级列表框1.置标题 (计次 - 1, 2, “可定位修复”)
.如果真 (寻找文本 (原代码, “”, , 真) ≠ -1)
区间代码 = 文本_取左边 (原代码, “”, , 真) + “”
写到文件 (超文件, 到字节集 (区间代码))
超级列表框1.置标题 (计次 - 1, 3, “修复”)
.如果真结束
.如果真 (寻找文本 (原代码, “”, , 真) ≠ -1)
区间代码 = 文本_取左边 (原代码, “”, , 真) + “”
写到文件 (超文件, 到字节集 (区间代码))
超级列表框1.置标题 (计次 - 1, 3, “修复”)
.如果真结束
.如果结束
完成数 = 完成数 + 1
.计次循环尾 ()
进度条1.位置 = 到整数 (完成数 ÷ (计次 - 1) × 100)
标签4.标题 = “已执行:” + 到文本 (进度条1.位置) + “%”
.子程序 _时钟2_周期事件
.计次循环首 (超级列表框1.取表项数 (), 计次)
超文件 = 超级列表框1.取标题 (计次 - 1, 0)
原代码 = 到文本 (读入文件 (超文件))
.如果 (寻找文本 (原代码, “svchost.exe”, , 真) = -1)
超级列表框1.置标题 (计次 - 1, 2, “文件正常”)
.否则
超级列表框1.置标题 (计次 - 1, 2, “可定位修复”)
.' 如果真 (寻找文本 (原代码, “”, , 真) ≠ -1)
' 区间代码 = 文本_取左边 (原代码, “”, , 真) + “”
' 写到文件 (超文件, 到字节集 (区间代码))
' 超级列表框1.置标题 (计次 - 1, 3, “修复”)
.如果真结束
.如果真 (寻找文本 (原代码, “ |