硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 49|回复: 0
收起左侧

[技术讨论] 校验值一样,就说明整个固件一样吗?用16个字节看懂局部校验

[复制链接]

6

主题

0

回帖

18

积分

新手上路

积分
18
发表于 昨天 13:41 | 显示全部楼层 |阅读模式
排查固件问题时,经常会收到一句回复:“我这里校验值和你一样。”这句话还缺几个条件:用的什么算法?从哪里开始?算了多长?比较的是电脑上的文件,还是芯片里的数据?如果双方算的都只是文件开头,即使结果一致,也不能据此判断后面几十KB的内容。

一个结果,要带上它的计算范围

校验计算的对象,是被选中的一段字节。算法并不知道这段数据在业务上代表文件头、版本区,还是整个应用。把范围省略,就像只核对了第一页,却在记录里写“整本一致”。局部校验有明确用途:确认一段已知数据、缩小差异范围,或复查固定区域;结论也应停留在那个范围内。

SPFlash手册列出的校验工具支持CRC32、MD5和CHECKSUM,可选择的范围为1至1024字节。使用时要把这个长度限制记入结果说明。如果固件大于该范围,一次工具计算只覆盖选定片段。不要把工具页上的一个结果,写成“整个固件验证通过”。



图1:SPFlash手册中的校验工具界面。记录结果时,同时保留所选文件、算法、起点和长度。

两组16字节数据:前8字节相同,后面仍然可以不同

以下为本文构造的演示数据,不是设备测试日志。A为:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F;B为:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E FF。它们只有最后一个字节不同。若只计算偏移0开始的8字节,输入完全一样,结果自然一样。



图2:绿色区域是前8字节的比较范围;最后一个字节在范围之外,因此无法通过这次计算发现差异。

A与B各自的前8字节
MD5计算结果:3677509751ccf61539174d2b9635a7bf
能得出的结论:这一片段输入相同,结果相同

A的完整16字节
MD5计算结果:1ac1ef01e96caf1be0d329331a4fc2a8
能得出的结论:纳入后半段后,与B结果不同

B的完整16字节
MD5计算结果:f7f1ac00dd2a3df9f3bb26bdada2bfd0
能得出的结论:两个完整输入确实存在差异

表中数值按上述原始字节计算并核对,空格和十六进制字符本身不参与计算。若复制字符串“00 01”到文本文件再计算,算到的会是字符编码,不能按同一输入理解。复现前,先统一“原始二进制字节”还是“显示出来的文字”,这也是远程沟通中容易遗漏的一步。

三个层次,分别回答三个问题

局部校验值核对
主要回答:同一范围、同一算法的结果是否一致
仍需补充:字节内容及范围外数据的检查

完整文件逐字节比对
主要回答:交付的整个文件是否一致
仍需补充:来源可信性、烧录配置及目标写入检查

目标板验证
主要回答:数据写入和运行是否符合要求
仍需补充:按产品定义的版本与功能验收

不同数据可能产生相同校验值,因此“值相同”不是逐字节一致的严格证明。本例前8字节相同,是由已列出的数据直接可知。MD5也不能证明文件来自谁,或保证抵抗恶意篡改;需要确认来源时,应使用可信发布渠道和相应的签名验证流程。电脑上文件一致,同样不能代替目标芯片写入检查与硬件功能验收。

比结果之前,先对齐这份记录

1. 对象:文件名、版本、文件大小;如为目标存储区,写明芯片及读取方式。
2. 坐标:文件偏移还是目标Flash地址,明确单位及起点。
3. 范围:长度按字节记录,写明包含起点的连续区间。
4. 方法:算法、工具及版本;CRC或CHECKSUM跨工具比较时还要确认具体定义一致。
5. 结果:保存原值和截图,备注“局部核对”或“完整文件计算”。
6. 后续:完整性核对、目标写入验证与断电重启验收分别记录。

实际沟通可以写成:“文件app_v1.2.bin,偏移0,长度1024字节,使用某版本工具计算MD5,结果如下。”这比一句“校验一样”更容易复核。若怀疑差异在后半段,应扩大检查或使用能够处理完整文件的工具;不要反复计算同一段,然后把重复的一致当成更充分的证据。

SPFlash校验工具的功能与范围依据:std.plus《SPFlash S3 Pro使用说明书》。示例数据由本文构造,MD5结果为对原始字节的计算值。
https://std.plus/docs/spflash/manual

讨论:你们的烧录记录会同时保存算法、起点和长度吗?遇到“校验相同但运行不同”时,通常先核对哪一项?

https://std.plus/docs/spflash/manual
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-10-14 07:18 , Processed in 0.183213 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表