CertLock - 通过封禁数字证书永久阻止流氓软件全家桶,单文件免安装

CertLock 是什么

CertLock 是一款通过 Windows 原生软件限制策略(SRP)封禁流氓软件数字证书的轻量工具。不删文件、不装杀毒、不后台常驻——把流氓厂商的签名证书加入系统黑名单后,该厂商所有软件(包括自动下载的、换目录的、重命名的)都无法运行。

为什么不是简单的卸载/删文件

  • 卸载:残留服务+计划任务,重启后自动修复重装
  • 删文件:自修复组件静默重新下载
  • 改 Hosts:域名可换,治标不治本
  • 杀毒拦截:占用资源,卸载后失效

CertLock 直接封证书指纹,系统内核加载器层面拦截,重装、换目录、加壳都没用。

现在支持

  • 证书封禁:内置 360、金山、鲁大师、2345、腾讯等常见流氓厂商证书预设,也支持任意签名软件自定义封禁
  • 哈希封禁:无签名软件按 SHA256 文件指纹精确阻止
  • 系统目录保护:自动拒绝封禁 C:Windows 等系统路径,防止误操作
  • 一键撤销:操作历史记录,误封可回滚
  • 命令行模式:支持 --block、–hash、–list、–dry-run 等,方便脚本化
  • 策略备份/导出:JSON 格式,跨机器迁移或社区分享

使用

下载 Release 里的 zip,解压后右键管理员运行 CertLock.exe 即可。首次运行 Windows 可能提示 SmartScreen,点「更多信息」→「仍要运行」。

关于误报

由于使用 PyInstaller 单文件打包 + 修改系统注册表(SRP 策略),部分杀毒引擎会触发启发式误报。VirusTotal 62/70 全绿,报红的 8 家均为行为特征检测(dropper/generic),零恶意代码检出。源码 100% 开源 MIT 可审计。

GitHub: GitHub - zhaofeiy2002-ctrl/certlock: Windows Certificate Blocker - Block unwanted software via SRP certificate rules. Single-file portable GUI tool. · GitHub

求测试

想找 10 个真实用户验证效果:

  • 你的环境里有哪些流氓软件还在蹦跶?
  • 封禁后有没有误杀正常软件?
  • 有没有「我靠这居然没封住」的情况?
3 个赞

看起来确实是很新颖的保护策略,不过我电脑没有什么流氓软件,只能帮顶一下了

1 个赞

其实并不新颖
就我知道的,这个方法已经出现了12年了
但是这个证书库需要一直维护,而且工作量很大。。。

1 个赞

哦,一个简配版本的HIPS

虽然我用不上,但是表示一下支持

1 个赞

感谢支持!确实定位就是简配版——把 HIPS 里普通人用不到的功能砍掉,只留封禁证书/哈希这一个核心场景,单文件右键运行,用完就关 :globe_showing_europe_africa:

确实企业 IT 用 GPO 推 SRP 白名单/黑名单是日常操作。做这个的目的就是:被「安全下载」套路塞了 360 的普通用户,不需要知道 gpupdateCodeIdentifiers 是什么。CertLock 的价值是把这套机制封装成单文件 + 预设 + 撤销,让非技术人员能用。:kissing_face_with_smiling_eyes:

搞个虚拟机测一下?

我只想去掉鲁大师在回收站底栏增加的C盘清理。

你可以先封禁,之后重启后本地文件应该是无法运行的了。在后面找到那个位置的文件直接删除就行。(试试看?)

我感觉可以扩充一下软件的签名库。
之前Malware-Patch项目就有一堆这样的签名,不过我也担心这样会增大杀软误杀的可能。

1 个赞

可以使用类似AdBlock或者AdGaurd的思路

  • 提供一大堆的列表,软件启用的时候,只默认启用最低限度的列表项。用户可以根据需要,自己决定启用哪个。
  • 如果误杀,那就是用户配置的问题

这个能够手动上传并自动识别。

谢谢!不过确实下面能够一次性提供一大堆(证书)然后软件自启时候最低运行确实不错,我想先试试做出来,但要是失去了软件本身的精简性(简洁的那种舒适感)我可能不会更新 :joy:

是证书粒度的识别拦截吗?还是支持可以部分放行

这个有意思啊,理论上可以,粒度是证书指纹级别,比如金山系有两张不同的签名证书——毒霸和 WPS 各自一张,可以只封毒霸的证书、保留 WPS 不受影响。但如果同一张证书签了多个程序,证书规则层面是统一拦截的。需要部分放行的话,Windows SRP 支持路径规则覆盖证书规则,在注册表加一条路径 Unrestricted 就行,优先级更高。当前工具 GUI 还没做这个入口,人民有需求我试着这两天加一个路径白名单面板。:face_vomiting:

可以根据定位,先考虑下有没有必要

如过是轻量的绿色定位,那加白名单必然涉及到写文件/规则配置操作逻辑的设计

hips一般是有白名单机制的,但好像没有直接通过证书设置的粒度(ESET没有,冰盾也好像没有)。如果是通过内置黑名单达到快速的广域封锁,感觉也没必要添加白名单功能增加复杂度

理解你的顾虑。不过这个不是自己实现白名单逻辑——SRP 本身就支持 Path Rules,Windows 内核加载的时候会按「路径 > 证书」的优先级判的,刚刚我们只是给这个已有的系统能力加了个 GUI 入口,大概 100 行代码,不会碰核心逻辑。

实际场景是:用证书规则一键封了某厂商所有程序,但某个具体 exe(同厂商签名)确实需要用,这时候给这个 exe 加一条路径白名单就行。这是 SRP 自己的设计意图,不是额外加的功能。

对不需要的人完全不可见——藏在第三视图里,默认不展示。所以不影响轻量定位。