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

如何将SIPolicy.p7b转回XML并检测是否包含Rule 3(Audit Mode)

WDAC SIPolicy.p7b 转换与状态检测 PowerShell 实现方案

核心问题1:二进制SIPolicy.p7b转XML的官方实现

不需要逆向解析二进制格式,Windows 内置的ConfigCI模块原生支持编译后WDAC策略的反向转换,兼容Win10 1909+、Win11、Server 2022及以上系统,低版本系统安装对应版本RSAT的WDAC管理组件即可使用。
转换命令如下,转换得到的XML与策略编译前的原始XML规则、配置完全一致,无字段丢失:

# 导入WDAC管理模块
Import-Module ConfigCI -ErrorAction Stop
# 执行p7b到XML的转换
ConvertFrom-CIPolicy -BinaryFilePath "C:\Windows\System32\CodeIntegrity\SIPolicy.p7b" -XmlFilePath "C:\temp\converted_policy.xml"

核心问题2:直接检测SIPolicy.p7b的运行模式(Audit/Enforce/Disabled)

你之前用哈希比对的方案存在天然兼容性缺陷:不同系统版本编译的同规则p7b文件会包含签名、版本标识等差异字节,哈希值无法保持一致,不建议使用。
不需要用户提供原始XML、不需要硬编码路径,直接读取系统生效的p7b文件即可完成检测,推荐两种实现方式:

方法1:官方模块检测(准确率100%,推荐)

利用ConvertFrom-CIPolicy支持输出到内存的特性,不需要落地临时文件,直接解析XML对象判断规则项即可,完全适配GUI工具无交互的检测需求:

function Get-WDACPolicyStatus {
    param(
        [string]$DeployedPolicyPath = "C:\Windows\System32\CodeIntegrity\SIPolicy.p7b"
    )
    # 匹配Disabled状态
    if (-not (Test-Path $DeployedPolicyPath)) {
        return "Disabled"
    }
    try {
        Import-Module ConfigCI -ErrorAction Stop
        # 二进制策略直接转内存XML对象,不写入磁盘
        [xml]$policy = ConvertFrom-CIPolicy -BinaryFilePath $DeployedPolicyPath
        # 检测Rule Option 3(Audit Mode)是否启用
        $auditRule = $policy.SiPolicy.Rules | Where-Object {
            $_.Rule.Option -eq "3" -and $_.Rule.Name -eq "Enabled:Audit Mode"
        }
        return $auditRule ? "Audit Mode" : "Enforce Mode"
    }
    catch {
        throw "策略解析失败:$($_.Exception.Message)"
    }
}

# 调用示例:直接返回当前策略状态,可直接绑定到GUI状态标签
$statusLabel.Text = Get-WDACPolicyStatus

方法2:无依赖轻量检测(适配无ConfigCI模块的老系统)

SIPolicy.p7b中的规则配置以Unicode字符串明文存储,不需要解析ASN.1结构,直接读取二进制内容做特征匹配即可,注意该方法存在极端场景误判可能,优先使用方法1:

$policyRaw = [System.IO.File]::ReadAllBytes("C:\Windows\System32\CodeIntegrity\SIPolicy.p7b")
$policyText = [System.Text.Encoding]::Unicode.GetString($policyRaw)
$isAuditMode = $policyText.Contains("Enabled:Audit Mode")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:06:33