logo资料库

DSP程序加密解密方法.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
DSP 程序加密解密方法: 加密方法有两种: 第一种:“显示”法加密步骤如下: 1,在 Debug Configurations 下拉菜单中,点击 Program;在 Program 菜单中选择 Load symbols only,然后点击 Apply;再点击 Debug,此时,CCS 已经与目标板建立了连接。 2 , 在 Memory Map 菜 单 中 , 点 击 On-Chip Flash , 会 出 现 如 下 图 所 示 界 面 此时自定义密码通过修改 Code Security Password 中的 Key0~Key7,但是 Key0~Key7 不 能全设置为 0,否则芯片将永远被锁。 修改好 Key0~Key7 之后,点击 Program Password,CCS 下发会出现如下图所示的提示: 再点击 Lock,则加密完成。会出现如下所示加密完成提示: 第二种:“隐式”加密法,即通过添加汇编代码:具体步骤如下: 1,将下面的程序保存为.asm 文件,添加到工程中,与其他文件一起编译。 .sect "csmpasswds" .int 0xFFFF ;PWL0 (LSW of 128-bit password)
.int 0xFFFF ;PWL1 .int 0xFFFF ;PWL2 .int 0xFFFF ;PWL3 .int 0xFFFF ;PWL4 .int 0xFFFF ;PWL5 .int 0xFFFF ;PWL6 .int 0xFFFF ;PWL7 (MSW of 128-bit password) .sect "csm_rsvd" .loop (3F7FF5h - 3F7F80h + 1) .int 0x0000 .endloop 2,将下面的语句写入 CMD 中, MEMORY { … CSM_RSVD : origin = 0x3F7F80, length = 0x000076 … CSM_PWL : origin = 0x3F7FF8, length = 0x000008 … } SECTIONS { … csmpasswds : > CSM_PWL PAGE = 0 … csm_rsvd : > CSM_RSVD PAGE = 0 … } 3,按照上面的方法编译好后,你的程序已经加密好了,你只需要将生成的.out 交给 Flash 烧写人员就可以了。 注意:“隐式”加密,如果加密了 128 位,则必须辅助硬件复位,才能用 CCS 解密。如 果只加密高 64 位,则不需要硬件复位,就可利用 CCS 解密。 硬件复位方法:上电之前 GPIO34 引脚拉低,上电之后,恢复其默认状态;接下来解密 方法是一样的。 加密高 64 位方法: 1,将下面的程序保存为.asm 文件,添加到工程中,与其他文件一起编译。 .sect "csmpasswds" .int 0xFFFF ;PWL4 .int 0xFFFF ;PWL5 .int 0xFFFF ;PWL6 .int 0xFFFF ;PWL7 .sect "csm_rsvd"
.loop (3F7FF5h - 3F7F80h + 1) .int 0x0000 .endloop 2,将下面的语句写入 CMD 中, MEMORY { … CSM_RSVD : origin = 0x3F7F80, length = 0x000076 … CSM_PWL : origin = 0x3F7FFC, length = 0x000004 … } SECTIONS { … csmpasswds : > CSM_PWL PAGE = 0 … csm_rsvd : > CSM_RSVD PAGE = 0 … } DSP 程序解密步骤: 1,跟“显示”加密法第 1 步一样,先建立 CCS 与目标板之间的连接; 2,跟“显示”加密法第 2 步一样,只是输入 Key0~Key7 为你已加密的密码,然后点击 Unlock,会出现如下提示: 3,擦除 Flash 中的数据,点击如下图所示
中的 Erase Flash,若出现如下所示的提示 则 Flash 中的数据已擦除,即完成了程序的解密。 注释:以上所示的界面均为 CCS5.3所呈现的。
分享到:
收藏