精易论坛

标题: VBS病毒感染本地网页文件修复工具 [打印本页]

作者: hxq2015    时间: 2024-7-7 22:08
标题: VBS病毒感染本地网页文件修复工具
本帖最后由 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, “修复”)

        .如果真结束
        .如果真 (寻找文本 (原代码, “
作者: hxq2015    时间: 2024-7-7 22:17
这个排版真的是乱,修改了两遍,不中看,无语了。
作者: hxq2015    时间: 2024-7-8 09:35
hxq2015 发表于 2024-7-7 22:17
这个排版真的是乱,修改了两遍,不中看,无语了。

给个成品,下载可用 VBS病毒感染文件修复.rar (850.27 KB, 下载次数: 3)
作者: 一指温柔    时间: 2024-7-8 10:26
感谢分享
作者: qq977352880    时间: 2024-8-15 06:30
全都是大佬~

作者: 涤尘    时间: 2025-4-18 20:31
感谢分享‘




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4