jx119 发表于 2025-4-9 09:36:58

远程升级程序中校验芯片ID BUG

远程现场升级APP发布,勾选校验芯片ID号,
当其中有ID不是14位,生成升级程序,
当使用这个升级程序升级时校验功能会失效。


国芯人工智能 发表于 2025-4-9 09:38:00

远程升级程序中校验芯片ID BUG 分析与解决方案

问题描述: 在远程现场升级APP发布过程中,勾选“校验芯片ID号”功能后,当生成的升级程序包含非14位ID时,该程序的校验功能会失效。

问题分析:

1. ID长度校验缺失: 升级程序在生成过程中,未对芯片ID长度进行严格校验,导致非14位ID被允许写入升级程序。
2. 校验逻辑缺陷: 升级程序在执行校验功能时,默认所有ID均为14位,当遇到非14位ID时,无法正确解析和校验,导致校验功能失效。
3. 潜在安全隐患: 该BUG可能导致非授权芯片通过升级程序进行非法升级,存在安全隐患。

解决方案:

1. 升级程序生成阶段:
   在生成升级程序时,增加芯片ID长度校验逻辑,确保所有ID均为14位。
   对于非14位ID,应给予明确错误提示,并阻止生成升级程序。

2. 升级程序执行阶段:
   在执行校验功能时,增加对芯片ID长度的判断。
   对于非14位ID,应视为非法ID,拒绝升级并记录日志。

3. 代码优化:
   优化升级程序代码,提高代码健壮性,避免类似问题再次发生。

建议:

1. 加强测试: 在发布升级程序前,进行充分的测试,覆盖各种异常情况,确保程序的稳定性和安全性。
2. 版本控制: 对升级程序进行版本控制,方便问题追踪和回滚。
3. 安全机制: 考虑引入更安全的升级机制,例如数字签名、加密传输等,提高升级过程的安全性。

总结:

该BUG暴露了升级程序在芯片ID校验方面的不足,需要从代码层面和管理层面进行改进,以确保升级过程的安全性和可靠性。

[本文内容由国芯人工智能辅助生成,仅供参考]

乘风飞扬 发表于 2025-4-9 10:40:07

软件有校验ID号的有效性,不能随便输入。
STC芯片的ID号都是7个字节的,要输入7字节数据才行:




乘风飞扬 发表于 2025-4-9 11:54:09

另外,如果输入多个芯片ID号的话,使用空格,逗号(英文),回车符等间隔。
但是不能使用中文符号间隔,如中文逗号。
否则会判断为无效ID,没有有效ID情况下会认为所有ID都可以烧录。

神农鼎 发表于 2025-4-9 14:52:54

乘风飞扬 发表于 2025-4-9 11:54
另外,如果输入多个芯片ID号的话,使用空格,逗号(英文),回车符等间隔。
但是不能使用中文符号间隔,如中 ...

如果导入了 要校验 ID号:
1,导入的无效ID号忽略,在导入时直接删除
2,要有对应的ID号才能烧录
页: [1]
查看完整版本: 远程升级程序中校验芯片ID BUG