本帖最后由 jrcsh 于 2016-5-10 09:56 编辑
对山妖的加密没什么信心,
象我这种 暂时吊死在51 上的人~~~~ 只能一边用~~~一边骂~~~一边骂~~~一边用
此功能主要是实现将用户代码加密后再下载,
以防止代码下载过程中被第三方串口监控软件
将用户的原码数据截取,从而确保了代码的安全.
程序拥有者产品出厂时将源程序和加密钥匙
一起烧录MCU中,以后需要升级软件时,就可将
程序加密后再用"发布项目程序"功能,生成
一个用户自己界面的只有一个升级按钮的
简单易用的升级软件,给最终使用者自己升级,
而拦截不到您的原始程序
此功能仅对如下系列及新出的单片机有效:
STC15F2K60S2/STC15L2K60S2
IAP15F2K61S2/IAP15L2K61S2
STC15F104W/STC15L104W
IAP15F105W/STC15L105W
STC15W104SW/IAP15W105W
STC15W201S/IAP15W205S
STC15F408AD/STC15L408AD
IAP15F413AD/IAP15L413AD
STC15W408S/STC15W1K16S/STC15W408AS
IAP15W413S/IAP15W1K29S/IAP15W413AS
只下载加密代码的使用方法
1. 点击"打开程序文件"按钮,打开加密过的文件
2. 选择"本次下载的代码为加密代码"选项
3. 点击"下载/编程"按钮开始编程
重新加密代码的使用方法
1. 点击"生成新密钥"或者"打开密钥"
2. 点击"加密代码"按钮
3. 在打开对话框中选择未加密的文件
4. 在保存对话框中输入加密后的文件名
更新IC内部密钥的使用方法
1. 点击"生成新密钥"或者"打开密钥"
2. 选择"下载用户代码前先更新用户密钥"选项
3. 点击"下载/编程"按钮开始编程
ID号加密是根据用户所设定的算法对ID号的
7个字节进行分别运算,每种加密算法最多可
以进行4次不同的运算,运算符不分优先级,
从前到后依次进行4次运算,对于同一个加密
算法,ID号的7个字节是分别使用此算法进行
运算,运算完成后会得到加密后的7个字节,在
下载用户代码时,加密后的7个字节会自动写入
到用户所指定的FLASH中
例如:
当前芯片内部的ID号为 :
01H 02H 03H 04H 05H 06H 07H
选择的加密算法为 :
<<1, +2, *3, ^4
设定的存储地址为 : 0x1000
经加密运算后的ID号为
08H 16H 1CH 1AH 20H 2EH 34H
下载程序过程中,加密的ID号会被写入到
FLASH的0x1000~0x1006地址中
08H写入到0x1000
16H写入到0x1001
1CH写入到0x1002
1AH写入到0x1003
20H写入到0x1004
2EH写入到0x1005
34H写入到0x1006
目前版本提供两种加密方式,可将ID号使用
两种不同的方式加密后写入到不同的地址中
每种加密方式中可进行4步运算,每一步运算
可选择下面的7种运算方法:
+ : 加法运算
- : 减法运算
* : 乘法运算
/ : 除法运算
<<: 左移运算
>>: 右移运算
^ : 异或运算
对于运算操作数,只接受10进制数的输入,
有效的数据为0~255,超出范围的数,
高位会被自动舍弃. 例如输入257(102H),
则实际参加运算的术为2(02H)
所有的运算都是基于单字节的,高低字节之间
不会产生进位和借位,即低字节运算后如果产生
进位或借位将直接舍弃,而不参与高字节的运算
例如:
如果ID号为 : 01 02 03 04 ff fe fd
加密方式为 : "+255, +0, +0, +0"
则加密后的数据为 : 00 01 02 03 fe fd fc
注意事项:
若是将ID号加密和程序加密后传输这两种功能
结合起来同时使用时,则必须在原代码加密前,将
需要写入加密ID号的地址空间预留为FF,然后在对
程序文件进行加密
例如:
我现在需要将ID号加密后写入到程序空间1000H
开始的地址,那么我必须在我的源代码中,将1000H~
1006H这7个字节保留,并定义为FFH(不能为00H)
ISP 软件上的功能~~~~~~~
|