SCD 文件
定义
在 IEC 61850 标准体系中,SCD(Substation Configuration Description)文件是变电站配置描述文件,它是整个变电站自动化系统的 “总配置文件”
它包含了:
一次设备接线拓扑:母线、线路、开关、互感器等的连接关系
二次智能电子设备(IED)信息:保护、测控、智能终端等装置的模型,包括逻辑设备、逻辑节点、数据对象等
通信配置:GOOSE、SV 等报文的控制块、发布/订阅关系,MMS 报告设置等
映射关系:将设备间的逻辑信号绑定到具体网络报文
简单说,SCD 文件是变电站二次系统集成和运维的基础数据,必须保证正确性和唯一性,否则会导致保护误动、拒动或通信故障
实战案例
智能变电站设备异常诊断(SCD 文件)
010 打开发现文件头被颠倒了

改回来后打开就是一个 dcs.dcs 文件

初步查看文件类型
1 | file dcs.dcs |
可以看到文件不是普通 XML
1 | dcs.dcs: data |
但文件头附近有明显标识
1 | $KEMOV-SCD-FILE$ |
继续查看十六进制
1 | od -Ax -tx1z -N 128 dcs.dcs |
对应了 $KEMOV-SCD-FILE$
同时后面出现了类似
1 | 20 31 20 31 20 30 20 6b 20 76 20 2e 20 73 20 63 20 64 |
这种结构解出来是
1 | 110kv.scd |
说明这个文件本质上保存的是一个变电站 SCD 配置信息,只是被厂商工具二进制化了
观察文件里的 ASCII 字符串会发现它不是正常连续保存的
1 | 20 49 20 4c 20 31 20 31 20 30 20 31 |
这不是普通 ASCII,而是类似
1 | 0x20 + ASCII 字符 |
所以
1 | 20 49 -> I |
解出来是
1 | IL1101 |
中文部分则基本可以按 UTF-16BE 理解
也就是说,文件里的大量字段是 1 字节长度 + 2 字节字符序列
编写脚本来恢复
1 | from pathlib import Path |
脚本首先能恢复出原始 SCD 文件名
1 | [+] header: $KEMOV-SCD-FILE$ |
接着筛选 110kV 线路智能终端,可以看到
1 | [+] 110kV line intelligent terminals: |
题目说问题可能来源于线路智能终端,所以重点检查
1 | IL1101 |
然后分析 IED_GOCB 记录,即 GOOSE Control Block 配置,异常输出为
1 | [+] duplicated IED_GOCB: |
这里的异常点非常明确:
1 | IL1101 / RPIT / LLN0 / gocb5 |
被重复配置了 10 次
在 IEC 61850/SCD 配置里,同一个 IED、同一个逻辑节点下的 GOOSE 控制块名称应该唯一。重复的 gocb5 会导致控制块引用冲突、GOOSE 配置异常,从而引发运行异常
题目问的是 “分析存在问题根源”
真正的问题是 “变电站基础配置文件 SCD 存在错误”
所以 flag 是 flag{scdisbad}