You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Get-Command查询伪EXE返回0.0.0.0,能否作为可执行文件校验依据?

核心结论

0.0.0.0是开发者可正常使用的合法版本号,不能单独将其作为非法文件的判断依据。
很多早期开发版本、内部测试用的可执行文件,或是开发者未主动配置版本信息时,都会直接将版本号设为0.0.0.0,这类文件是真实可运行的PE可执行文件。

现象原因说明

你遇到的改后缀TXT文件返回0.0.0.0的情况,是Windows系统读取文件版本资源的默认规则:当目标文件没有嵌入标准的版本信息资源块时,相关接口会默认返回0.0.0.0的版本值,和文件本身是不是真的可执行文件无关。

更可靠的EXE合法性校验方案

你可以结合以下多个维度判断,避免误判:

  • 首先校验文件是不是真实的PE格式可执行文件,不要仅判断后缀名:
    PE文件的头部固定以MZ字符开头,你可以通过PowerShell直接读取文件头2个字节判断:
    $header = [System.IO.File]::ReadAllBytes($path, 2)
    $isPE = [char]$header[0] -eq 'M' -and [char]$header[1] -eq 'Z'
    
    改后缀的非PE文件(比如TXT、图片等)都无法通过这个校验。
  • 如需结合版本信息判断,不要读取转换后的Version属性,直接读取原始版本字符串:
    直接获取未被自动转换的原始版本字段,判断是否为空即可,避免和真实填写的0.0.0.0版本号混淆:
    $fileVersion = (Get-Item $path).VersionInfo.FileVersion
    $productVersion = (Get-Item $path).VersionInfo.ProductVersion
    $hasValidVersionInfo = ![string]::IsNullOrWhiteSpace($fileVersion) -and ![string]::IsNullOrWhiteSpace($productVersion)
    
  • 对安全性要求更高的场景,可以额外校验文件的数字签名:
    使用Get-AuthenticodeSignature $path命令查看文件的签名状态,正规发布的可执行文件通常会带有有效数字签名。

内容的提问来源于stack exchange,提问作者Gordon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:57:01