本帖最后由 afei9527 于 2022-3-3 15:27 编辑
很久没来到论坛浇水了,曾几何时天天逛的论坛。进入职场也十余载了......
今天讲产品阶段首要任务(bootloader),设计需要考虑的一些问题。如何保证程序完整性?如何防止别人盗窃你的程序,或者盗取你程序需要的成本增加。
如何生成程序进行加密与完整性检查?
const FW_INFO FwInfo={
{"KEAZ128"},
{__DATE__ __TIME__},
{"1.0.3"}, //软件版本
{"1.0.3"}, //硬件版本
{"SerialNumber"},//mcu uid
{"App"}
};
/*
1:通过这块来检查代码完整性
2:判断软件是否支持办卡
3:判断是否盗版
*/
typedef struct
{
int head; //头部
int size; //结构体大小
int satrtAdr; //固件开始地址
int binSize;//固件大小
int crc; //固件完整性crc
const FW_INFO *FwInfo;
int serial_number[3];
int runStatus;//1-正常运行 0-需要校验软件完整性
char UpdateTime[32];//升级时间
int res[14];
}_softVersionInfo;
const _softVersionInfo softVersionInfo @0x6200=
{
0x55aa0102,
sizeof(_softVersionInfo),
0x00004200, //固件开始地址
0,
0,
&FwInfo,
{0,0,0},
0,
{"2022/02/13 09:12:01"},
} ;
1:通过vs制作一个hextobin 对生成的代码进行crc校验与加密