软件吧
登录注册账号
/posts/exe-stub-zip-sfx
电脑必备

同事发来的自解压包被杀软拦了,我先翻签名再核对哈希值

码农小张 100 0 13

上周同事通过内网发来一个部署包,后缀是 .exe 的自解压格式。双击后被公司的杀毒软件直接隔离,他没有仔细检查,又在群里问是不是所有解压工具都这样。我没有急着下结论,而是先拆开检查了一遍。

先说为什么会触发拦截

自解压包本质上是把解压程序(stub)和压缩数据拼接成一个可执行文件。杀软判断时,主要看两个东西:

  • 这个 stub 有没有数字签名
  • 内部释放出来的文件,有没有匹配到特征库

我拿手上的几个包做了对比:

  1. 7-Zip 生成的 SFX,stub 通常没有签名,如果加了密码,或者内部包含 .bat、.ps1 这类脚本,被拦截的概率明显上升;
  2. WinRAR 的 SFX 带签名,但内部包含批处理文件时也照样会被拦截;
  3. 用 Win解压缩 直接导出的自解压包,我这边测的版本在 stub 上同样没有签名,所以最终还是要看包里装了什么。

我的处理步骤,按顺序走

  • 先别急着加白名单。用 7z l 把包列出来,确认里面装的确实是自己要的文件;
  • 用 certutil -hashfile xxx.exe SHA256 核对哈希值,和发送方核对一遍,确认传输过程没有损坏;
  • 如果确实需要运行,把它放到虚拟机里跑一遍,查看释放出来的文件;
  • 确认没问题后,再找安全组申请临时放行,不要自己直接关闭杀软防护。

顺带说个命令行上的坑

我试过用命令行批量生成自解压包,7-Zip 的 -sfx 参数在脚本里很稳定,路径带空格时加引号就行。而 Win解压缩 的命令行我翻了一遍帮助文档,支持的参数比较有限,批量场景基本得手动操作。所以现在我的做法是:日常解压用 Win解压缩,图它快,大日志包确实能快两三秒;批量打包、生成 SFX、加密码这些需要脚本操作的事,还是交给 7-Zip。

最后提醒一句:自解压包被拦截,很多时候是包内容的问题,不能全怪工具。

你们在收到自解压的部署包时,一般是先核对哈希值,还是先拉进虚拟机里跑一遍?有没有人碰过 stub 本身带签名的自解压格式,具体是哪种工具生成的,报一下版本号,我记下来做对比。

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。