24小时热门版块排行榜    

查看: 362  |  回复: 0
当前主题已经存档。

sdlj8051

金虫 (著名写手)

[交流] [转贴]LPC2100系列ARM7微控制器的加密方法

1.  加密原理说明
    LPC2100系列ARM7微控制器是世界首款可加密的ARM芯片,对其加密的方法是通过用户程序在指定地址上设置规定的数据。PHILIPS公司规定,对于LPC2100芯片(除LPC2106/2105/2104外),当片内FLASH地址0x000001FC处的数据为0x87654321时,芯片即被加密。在加密设置后,JTAG调试接口无效,ISP功能只提供读ID及全片擦除功能。注意:将带有加密设置的程序下载到芯片内部FLASH,在下一次系统复位后加密生效。

2.  加密程序实现
   为了实现加密设置,用户必须保证在0x000001FC处定义数据0x87654321。我们先来分析一下带有加密设置的程序结构,如图1所示,地址0x000000~0x00000020为异常向量表,若向量表中使用LDR指令跳转,可以在0x00000020~0x00000040之间定义各个异常服务入口地址;在异常向量表之后,0x000001FC地址之前,这一小块空间可以编写部分初始化代码或FIQ中断处理程序;然后使用NOP指令填充,直到0x000001FC地址,在该地址上定义数据0x87654321即可,用户的其它程序代码紧跟其后。

    异常向量表
    部分初始化代码或FIQ中断处理
    NOPNOP...
    DCD  0x87654321
    用户代码

   

    加密程序的实现部分在LPC2100的起动代码Startup.s文件中,如程序清单1所示。程序首先使用IF伪指令判断是否已定义EN_CRP全局变量,若已声明,则编译程序清单1(2)~(8)的代码,进行加密设置。说明:EN_CRP全局变量可以在汇编器中预定义或在该文件开头用GBLA/GBLL声明。
程序清单1(2)是用来判断当前代码地址是否已超过0x000001FC,若超过则使用INFO伪指令显示出错信息,见程序清单1(3)。程序清单1(5)~(7)用于填充NOP指令,直到0x000001FC为此。程序清单1(8)即是在0x000001FC地址上定义数据0x87654321,以实现加密设置。

    程序清单1    LPC2100加密程序实现代码

    ; 异常向量表
    ...
    ...
    IF  EF: EN_CRP                                                (1)
           IF  . >= 0x1fc                                                (2)
           INFO  1,"\nThe data at 0x000001fc must be 87654321.\nPlease delete some source before this line."                      (3)
        ENDIF                    (4)

CrpData
            WHILE     . < 0x1fc                (5)
            NOP                    (6)
            WEND                    (7)
CrpData1
            DCD     0x87654321                  (8)
             ENDIF                        (9)


    3.  工程模板中可加密的目标
   使用LPC2100专用工程模板建立的工程,当选用RelInFLASH目标时,将会生成带有加密设置的程序。
   对于Thumb Executable Image for UCOSII(for lpc21xx) 工程模板,当选用ThumbRelInFLASH目标时,将会生成带有加密设置的程序。

[ Last edited by sdlj8051 on 2006-10-5 at 19:14 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sdlj8051 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 X5bHxOULxFqb 2026-10-30 14/700 2026-10-31 22:46 by YXM1FDCSE8Bn
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 X5bHxOULxFqb 2026-10-30 19/950 2026-10-31 22:44 by YXM1FDCSE8Bn
[论文投稿] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 X5bHxOULxFqb 2026-10-30 24/1200 2026-10-31 22:39 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 X5bHxOULxFqb 2026-10-30 11/550 2026-10-31 22:39 by YXM1FDCSE8Bn
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 xvJS1BYDxvBS 2026-10-31 5/250 2026-10-31 21:59 by YXM1FDCSE8Bn
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 4/200 2026-10-31 21:54 by YXM1FDCSE8Bn
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 4/200 2026-10-31 21:51 by YXM1FDCSE8Bn
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 4/200 2026-10-31 21:51 by YXM1FDCSE8Bn
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 5/250 2026-10-31 21:47 by YXM1FDCSE8Bn
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 10/500 2026-10-31 21:41 by YXM1FDCSE8Bn
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 9/450 2026-10-31 21:34 by YXM1FDCSE8Bn
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 1uaZt2kAZj2S 2026-10-30 11/550 2026-10-31 21:25 by YXM1FDCSE8Bn
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 X5bHxOULxFqb 2026-10-30 13/650 2026-10-31 17:12 by hKe7U1kad5Sg
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 X5bHxOULxFqb 2026-10-30 18/900 2026-10-31 17:05 by hKe7U1kad5Sg
[考博] 2027博士申请-临床检验诊断学、病原生物学、微生物方向 50+3 yyh@ 2026-10-28 4/200 2026-10-31 12:47 by 可淡不可忘
[硕博家园] 越来越担心硕士毕业后没有竞争力了 +8 zuesli 2026-10-27 14/700 2026-10-30 22:44 by 好运连连公主
[基金申请] 论文的挂名怎么评判贡献?基金申请中,排名第一的挂名文章 +3 biily 2026-10-25 3/150 2026-10-30 18:33 by 旁观2020
[硕博家园] 申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请 +3 小小阿光 2026-10-27 3/150 2026-10-29 23:56 by 起风了的快乐
[文学芳草园] 闲聊 +3 myrtle 2026-10-25 6/300 2026-10-29 15:28 by myrtle
[考博] 申博求助 20+3 Katrinae 2026-10-26 4/200 2026-10-27 09:56 by 北京莱茵编辑
信息提示
请填处理意见