火绒安全弹窗拦截组件独立版

资源链接:https://wwl.lanzoub.com/b00uyb850f 密码:1234

注意事项

  • 由于部分开发工具不支持中文编码,为了方便测试,脚本和exe的文档与注释均采用英文编写。如有需要,建议使用翻译软件。
  • 由于两个脚本均涉及到了注册表编译和特殊文件的增删,所以你必须以管理员身份运行它们。如有需要,请提前备份整个注册表并创建系统还原点。
  • hash.exe用于校验脚本内容的完整性。
    • 双击或在cmd中输入hash即可自动验证程序所在目录中的wr_db.batdel_db.bat是否已被人篡改。
    • 输入hash -hhash -help即可查看帮助文档(英文),了解更多用法。文档内容和风格以PowerShell 7.4 LTS的Get-FileHash命令的帮助文档为基准进行了修改,输入结果的格式会因窗口大小和结果字符串长度而变化,支持12种哈希算法,默认为SHA256。
    • hash基于OpenSSL 3.3.1的crypto库,使用C语言(C23标准)进行开发,数据处理速度约为220MB/s。正在根据NIST.FIPS 180-4和202标准开发SHA-2和SHA-3系列算法,旨在脱离OpenSSL但不大幅影响性能的前提下,进一步缩小软件大小。

测试环境

  • 处理器:AMD Ryzen 7 7735H with Radeon Graphics 3.20 GHz
  • 机带RAM:SAMSUNG DDR5 4800 16×2GB
  • 外存:Solidigm P44 Pro 4T
  • 系统类型:Windows 11 Professional

脚本原理

  • 虽然wr_db.bat的文件名是写入db文件,但其实它做的事情不止这些。
    1. 查找当前目录(脚本的工作目录)及其子目录中是否存在popblk.db(忽略大小写)。若不存在,则脚本执行结束;若存在,进入步骤2。
    2. 依次检查C:\ProgramData\C:\Documents and Settings\All Users\Application Data\是否存在。若都不存在,则脚本结束;若其中之一存在,将该目录记为dst_base,进入步骤3。
    3. popblk.db复制到%dst_base%Huorong\Sysdiag\db\中(若不存在中间目录,则自动创建)。若xcopy指令出错,则此步骤中的所有操作均不会生效,脚本异常结束;若指令未出错,则进入步骤4。
    4. 编辑注册表。在注册表项HKLM\SOFTWARE中新建项Huorong\Sysdiag\app,在app项中新建字符串值,数值名称为DataPath,数值数据为%dst_base%Huorong\Sysdiag。若指令reg add出错,则脚本异常结束;若指令未出错,则进入步骤5.
    5. 结束。
  • 同理,del_db.bat也不仅仅是删除db文件。
    1. 如果C:\ProgramData\Huorong\Sysdiag\db\popblk.dbC:\Documents and Settings\All Users\Application Data\Huorong\Sysdiag\db\popblk.db都不存在(忽略文件名大小写),则脚本结束;否则,进入步骤2。
    2. 删除Windows任务计划程序Huorong PopBlock。如果db文件夹中仅有popblk.db,则删除整个Huorong文件夹以及注册表项HKLM\SOFTWARE的子项Huorong;如果db文件夹中还存在其他.db文件,则仅删除popblk.db

[!Tips]

  • 非编程小白
    • 如果你有编程经验,我相信你完全可以根据文件夹中的微软官方cmd文档或在线文档写出全自动的bat/cmd脚本:自动从本机搜索出必要文件,然后将它们重新组织起来以便程序能正常工作,在不需要这些组件时可以自动删除所有相关文件。
    • 要是你觉得bat脚本功能太弱小,语法让人难以适应等,你也可以用PowerShell编写更加强大的跨平台脚本;
    • 或者用你熟悉的语言编写出自动化程序,如果你希望其他人也能直接使用它,那么将其打包成某个或某些平台的可执行文件是个不错的选择。
  • 编程小白
    • 如果你用的是Windows系统,那么你可以去网上搜索一下bat脚本编写教程,只需学习半小时左右,你就能自己编写出简单的bat脚本了,也能大致看懂其他人写的比较复杂的bat脚本了,这对于其他高级语言来说是不可想象的。平时要用的时候直接在文档中搜索命令关键词即可(例如,del是删除的缩写,reg就是与注册表有关命令),或者让AI(国外的GPT -4、GPT-4o、GTP-4o mini、Llama3.1、Claude3.5、Germin和国内的Kimi、通义等)辅助编写,前提是你能准确描述出自己的需求,并能看懂注释或代码。
    • 如果你需要更加高级的功能,也可以学习一下PowerShell脚本(直接看官方文档中的PowerShell 101部分),其谓语-名词+大驼峰的命令名称格式对小白来说很友好,单从命令名称你就能知道它是干什么的。
    • 一定要明确自己学习某个或某些技术的目的是什么,不要盲目跟风、浅尝辄止,一定要以解决问题为导向。例如,有些人学习了好几种编程语言,结果写不出一个对自己生活或工作有帮助的程序,有这时间不如干点别的。

自己动手制作PopBlock独立版

  1. 下载火绒安全,将以下文件复制到新文件夹中(弹窗拦截组件的存储位置),假设其为D:Huorong\PopBlocker
    • CrashHandler.dll(可选的动态库,用于捕获程序异常)
    • CrashDump.exe(可选的程序,用于记录程序异常)
    • DuiLib.dll
    • jansson.dll
    • libxsse.dll
    • PopBlkEng.dll
    • PopBlock.exe
    • popblock.ui
    • selfprot.dll
    • sqlite.dll
  2. 为了使文件的存储结构清晰,将C:\ProgramData\Huorong\Sysdiag\db(一般Windows上的程序都是在C:\ProgramData中存储自己的数据)或C:\Documents and Settings\All Users\Application Data\文件夹中的popblk.db(忽略大小写)复制到D:Huorong\PopBlocker\BatchScript\db中,将wr_db.batdel_db.batREADME.md(方便你随时查看)复制到BatchScript文件夹中。
  3. 要拦截弹窗,先以管理员身份运行wr_db.bat,然后双击PopBlock.exe。如果你不再需要火绒弹窗拦截组件,那么就以管理员身份运行del_db.bat

制作其他组件的独立版

[!Note]

将鼠标移动到.exe文件上,此时程序会显示自己的名字和版本等信息(一般都是中文),根据这些信息就可以确定它是不是你要的组件。

下面以制作垃圾清理的独立版为例进行说明:

  1. sysclean.exesysclean.ui复制粘贴到目标文件夹,双击运行sysclean.exe,此时程序会提醒你都缺少哪些文件,将这些文件全部复制粘贴到目标文件夹中。再次运行sysclean.exe,若程序不提醒你缺少哪些文件,但你却没有看到它的界面,则说明缺少数据库文件(.db),去C:\ProgramData\Huorong\Sysdiag\db中将sysclean.db复制粘贴到目标文件夹。
  2. 卸载火绒安全(如果你真的需要它,那你就不会看到本教程)。建议使用IObit Uninstaller等拥有记录功能或能删除程序的注册表和各种相关数据的软件(Windows自带的卸载程序卸载不干净),养成清理卸载残留的好习惯,能防止流氓软件秽土重生(火绒不会)。
  3. wr_db.batdel_db.bat复制粘贴到目标文件夹,用文本编辑器将这两个文件夹中所有的popblk.db替换为sysclean.db注意:必须是完全匹配,不能说包含匹配。最好还是手动修改。
  4. 先以管理员身份运行wr_db.bat,再运行sysclean.exe即可。若不再需要该组件,且要删除组件痕迹,那就以管理员身份运行del_db.bat

[!Tips]

一次性制作多个独立版组件

  • 如果你具有编写bat脚本的能力,或者你能根据微软官方cmd文档(本人已提供pdf版)编写bat脚本,那就直接重写脚本相关内容;
  • 否则,你就得根据脚本原理手动操作(增加和删除注册表项还是可以交给脚本的)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐