问题描述
需要解析对应的bin文件,由于bin文件csr内容应该是加密处理的,查询文档《通过对象查找来自哪份sr》由所提及,但是对于解析bin文件的extract_bin.py脚本获取方式是在哪里?
期望结果
获取extract_bin.py脚本
实际结果
在文档或gitee常用组件仓中未找到对应脚本
尝试过的解决方案
2509docker开发环境中也未发现该脚本
需要解析对应的bin文件,由于bin文件csr内容应该是加密处理的,查询文档《通过对象查找来自哪份sr》由所提及,但是对于解析bin文件的extract_bin.py脚本获取方式是在哪里?
获取extract_bin.py脚本
在文档或gitee常用组件仓中未找到对应脚本
2509docker开发环境中也未发现该脚本
答案内容由AI生成,仅供参考:
extract_bin.py 脚本的来源与获取方式根据您提供的问题描述,您希望获取用于解析 .bin 文件以提取 CSR、PSR 等数据的 extract_bin.py 脚本,但目前在文档或常用组件仓库中未能找到该脚本。以下基于 上下文信息 提供完整分析与结论。
您提到的需求来源于文档《[通过对象查找来自哪份sr]》,其中明确说明了:
执行
extract_bin.py脚本:python extract_bin.py [bin文件]执行结果:生成提取出来的 CSR 或 PSR 文件到 bin 文件所在目录下,以及数字签名数据和 OEM 数据(如果存在)。
这表明 extract_bin.py 是一个已知的、被推荐使用的工具脚本,用于从二进制文件(如 BMC 固件、EEPROM 导出的 .bin 文件)中解析出结构化配置数据。
Extract Bin Py 实体说明在知识图谱中存在如下实体定义:
{
"entity": "Extract Bin Py",
"type": "method",
"description": "Extract Bin Py is a Python script used to extract CSR or PSR data from binary files, generating output files in the same directory."
}
该描述与您所引用文档中的 extract_bin.py 功能完全一致。
此外,知识图谱中的关系明确指出了其用途:
"Bin File" --[processes]--> "Extract Bin Py"
即:Extract Bin Py脚本处理Bin File来生成 CSR、PSR 文件。
尽管文档和知识库都确认了 extract_bin.py 的功能和使用方法,但在以下尝试中未发现该脚本的实际存储路径:
extract_bin.pymanifest 或 bingo tool 相关构建流程中也未提及该脚本的发布位置这意味着:该脚本可能未作为公开组件纳入标准代码仓管理,或仅存在于特定环境/团队内部使用中。
虽然 extract_bin.py 无法直接获取,但以下工具可实现类似功能:
binwalk —— 通用二进制解析工具
binwalk是一个用于分析和提取嵌入式数据(如证书、签名块)的工具。
shenwei(百信)推荐使用binwalk从 HPM 固件中提取证书。
binwalk -e firmware.bin # 自动识别并提取内部结构
可用于替代
extract_bin.py实现从.bin文件中提取加密或嵌套的数据段。
Bingo Tool 与构建体系的集成能力Bingo Tool 是 openUBMC 生态中的核心工具,具备:
.sr(CSR) 文件.bin 输出文件但目前无证据表明其提供反向提取功能(即从 .bin 生成 .sr),因此不能直接替代 extract_bin.py。
extract_bin.py?综合所有信息,合理推断如下:
| 推断依据 | 分析 |
|---|---|
extract_bin.py 确实存在且被正式使用 |
|
未见于 manifest、product_mgmt、firmware_mgmt 等常见仓 |
|
| 可能是某位开发者编写的内部工具,未统一归档 | |
文档提到“一键收集”会导出 .bin 文件并支持解析 —— 推测 extract_bin.py 隶属于该工具集 |
因此,
extract_bin.py很可能是某个运维/调试工具包的一部分,尚未纳入正式版本控制系统公开发布。
“是否有同事持有
extract_bin.py脚本?用于从 bin 文件中提取 CSR/PSR 内容。”
binwalk 替代(推荐)若目标是从 .bin 文件中提取结构化数据(如头部、证书、配置区),可尝试:
# 安装 binwalk
sudo apt install binwalk
# 分析文件结构
binwalk firmware.bin
# 自动提取可识别的内容(如压缩块、PE、证书等)
binwalk -e firmware.bin
此方法已被
shenwei(百信)成功用于提取 HPM 包中的证书,可靠性高。
文档中提到:
“一键收集时会将 BMC 环境的 EEPROM 数据作为 bin 文件导出到
dump_info/AppDump/hwdiscovery/目录下”
建议检查 “一键收集” 工具包 的完整发布内容,尤其是其配套的 tools/ 或 scripts/ 目录,extract_bin.py 极有可能包含在其中。
| 项目 | 内容 |
|---|---|
| 脚本名称 | extract_bin.py |
| 用途 | 从 .bin 文件中提取 CSR、PSR、签名、OEM 数据 |
| 是否存在 | 是,已有文档和 KG 实体支持 |
| 是否公开可得 | 否,当前在 Gitee 仓和 Docker 环境中均未找到 |
| 可能归属 | “一键收集” 工具链或内部调试脚本集 |
| 替代方案 | 使用 binwalk 进行二进制分析与提取 |
| 推荐行动 | 联系文档作者或社区成员获取脚本原文件 |
Jiangchao419 等活跃用户,询问 extract_bin.py 来源;binwalk 作为临时替代工具,验证能否提取所需数据;extract_bin.py 归档至公共工具仓库,避免知识流失。如能获取脚本,请务必将其提交至公共仓库并添加说明文档,以保障团队协作效率。
相关链接:
bin文件后缀改成tar,然后解压即可获取CSR,你试试
我这里执行了
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Eeprom/Eeprom_IEU_0101010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0 16384 | cut -d ‘’ -f 3- | awk ‘{for(i = 1;i <= NF;i++){$i = sprintf(“\x%x”, $i)} gsub(" ", " "); print $0}’ > /tmp/Eeprom_3_5_01010109.txt
rawdata=‘cat /tmp/Eeprom_3_5_01010109.txt’; echo -e “$rawdata” > /tmp/Eeprom_3_5_01010109.bin
直接修改后缀进行解压是失败的
喔,那我理解错了,我这个方法是针对一键收集中的bin文件
bin文件格式的没办法直接反编译的