24小时热门版块排行榜    

查看: 356  |  回复: 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文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:27 by 9i7PCSZyMzot
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:03 by 9i7PCSZyMzot
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 00:51 by 9i7PCSZyMzot
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:15 by 9i7PCSZyMzot
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:03 by 9i7PCSZyMzot
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 4pRyVGCVerAA 2026-09-19 4/200 2026-09-20 00:03 by 9i7PCSZyMzot
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:51 by 9i7PCSZyMzot
[基金申请] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:39 by 9i7PCSZyMzot
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:03 by 9i7PCSZyMzot
[教师之家] 现代”学阀”该如何界定 +3 iaeyuan 2026-09-19 3/150 2026-09-19 20:52 by 没昵称呀
[基金申请] 国社科系统bug了,是不是要放榜了? +7 kynobel 2026-09-16 9/450 2026-09-19 14:52 by 接好运婷
[考博] 申博发邮件 +8 Lmengk 2026-09-15 9/450 2026-09-19 09:27 by 中间体超市
[有机交流] 各位大神,目前国内有哪些比较好用的逆合成软件? 20+3 zapen 2026-09-15 9/450 2026-09-18 18:17 by zapen
[考博] 上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告 +7 水士口 2026-09-16 8/400 2026-09-16 13:47 by kkklens
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +8 两三岁ss 2026-09-14 8/400 2026-09-16 09:46 by 水士口
信息提示
请填处理意见