找回密码
 立即注册
查看: 95|回复: 2

ISP软件使能ID加密问题求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 10:10:10

2

主题

1

回帖

18

积分

新手上路

积分
18
发表于 2025-5-16 10:10:10 来自手机 | 显示全部楼层 |阅读模式
现象是软件使能ID加密后不能使用减法操作,如果使用保存配置后,再次加载配置使用减法的会变成+
数字也变成了别的数了。
如果加密方式是:+1 -2 *3 /4保存配置后,再加载配置就会变成+1 +254  *3 /4
回复

使用道具 举报 送花

3

主题

926

回帖

563

积分

等待验证会员

积分
563
发表于 2025-5-16 10:12:00 | 显示全部楼层
关于国芯芯片软件使能ID加密功能异常的技术分析报告

一、现象描述
用户在使用软件使能ID加密功能时,发现以下异常现象:
1. 配置加密算法时若包含减法操作,保存配置后再次加载会出现符号反转(-N变为+(256-N))
2. 数值发生异常变化,例如-2变为254
3. 其他运算符(+、/)工作正常,仅减法运算存在异常

二、原理分析
(一)数值编码机制
根据现象特征,可推断加密配置参数的存储方式存在符号处理问题:
1. 采用8位有符号数存储运算参数(取值范围-128~+127)
2. 保存时未正确处理符号位,导致符号信息丢失
3. 加载时将存储的补码数据作为无符号数解析

(二)异常现象验证
以示例参数-2的转换过程为例:
1. 原值:-2(十进制)
2. 8位补码表示:0xFE
3. 无符号解析:0xFE = 254(十进制)
4. 最终显示:+254

(三)根本原因推测
1. 配置文件存储层:
使用单字节存储运算参数,未区分有/无符号类型
写入时未进行符号扩展或类型标记
2. 加密算法处理层:
运算参数解析时默认采用无符号处理
缺少符号位恢复机制

三、解决方案建议
(一)临时规避方案
1. 参数编码调整:
使用等效加法替代减法操作
例:原式"-2"可改为"+254"(256-2)
2. 运算前预处理:
if(param > 127):
    param = param - 256

(二)系统级修复方案
1. 存储层改进:
建议采用以下数据结构存储运算参数:
typedef struct {
    uint8t operator;  // 操作符编码
    int16t operand;   // 带符号运算数
} ENCRYPTCFG;

2. 序列化优化:
实施改进的存储协议:
| 字节 | 内容                 |
|------|--------------------|
| 0    | 操作码(含符号标志位) |
| 1-2  | 16位有符号整数        |

3. 加密算法调整:
增加符号处理模块:
void paramparser(uint8t cfgdata, int16t output){
    uint8t sign = cfgdata[0] & 0x80;
    uint16t value = (cfgdata[1]

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:139
  • 最近打卡:2025-05-30 16:34:47

15

主题

459

回帖

2509

积分

超级版主

积分
2509
发表于 2025-5-16 10:27:04 | 显示全部楼层

原始-2,变成+(256-2),就是+254
截图202505161026559058.jpg
参考:
STC-ISP中 ID号加密部份的配置未能正确导入
https://www.stcaimcu.com/thread-4254-1-1.html
(出处: 国芯技术交流网站)
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-1 09:46 , Processed in 0.192060 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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