查看: 6367|回复: 15

[其他] DZ60后门密钥加密与解密

[复制链接]

该用户从未签到

5

主题

41

帖子

0

注册会员

Rank: 2

积分
198
最后登录
2017-4-18
发表于 2016-5-14 16:42:12 | 显示全部楼层 |阅读模式
各位大神好,本人最近在做DZ60后门密钥的加密与解密,其中解密代码如下:void FLASH_VerifyBackdoorKey(byte *data,word length ,word first_addr)
{

    while( length-- )
    {
    __RESET_WATCHDOG();
    Flash_Data = *data++; // 更新数据
    Flash_Addr = first_addr++; // 更新地址
    Flash_Cmd = mByteProg; // 字节编程命令: 0x20
    RunFlashCmd(); // 32字节程序入口

    }
}
解密的条件是:
       DisableInterrupts;
     FCNFG|=0X40;
     FLASH_VerifyBackdoorKey(Key,8,0xffb0);
      FCNFG&=0XD0;
   EnableInterrupts;

其中Key是一个含有8个元素的数组,里面包含了解密的密码,某个条件下调用以上五句,依旧解密不了,请问这到底出了什么问题呢?




我知道答案 目前已有15人回答
回复

使用道具 举报

该用户从未签到

5

主题

41

帖子

0

注册会员

Rank: 2

积分
198
最后登录
2017-4-18
 楼主| 发表于 2016-5-14 16:47:15 | 显示全部楼层
我这个是按照数据手册上的来执行的,但是仍然找不到是哪里出了问题,各位大神请多多指教
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

41

帖子

0

注册会员

Rank: 2

积分
198
最后登录
2017-4-18
 楼主| 发表于 2016-5-15 10:47:54 | 显示全部楼层
数据手册中写到:执行Flash程序的同时可进行编程和擦除操作,我尝试着不将执行代码映射到RAM区,测试后发现,只能执行一次,之后程序就无法运行了,是否可以证明,对Flash的操作必须在RAM区进行?
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

41

帖子

0

注册会员

Rank: 2

积分
198
最后登录
2017-4-18
 楼主| 发表于 2016-5-16 10:40:53 | 显示全部楼层
用户可以选择通过一个8 字节后门安全密钥来设置允许或不允许安全解锁机制。如果
NVOPT/FOPT 中的非易失性KEYEN 位为 0,那么说明后门密钥被禁用,在没有完全擦除所有
Flash 位置的情况下不能启用安全性。如果KEYEN 为1,那么安全的用户程序可以通过以下方
式来暂时关闭安全性:
1. 向FCNFG 寄存器中的KEYACC 写入1。这将使Flash 模块将后门对比密钥位置
(NVBACKKEY through NVBACKKEY+7) 的写入解释为将与密钥进行对比的值而不是
Flash 编程或擦除命令的第一步。
2. 将用户输入的密钥值写入到位置NVBACKKEY 到NVBACKKEY+7 上。这些写入操作必
须按顺序进行,以NVBACKKEY 值开始,以NVBACKKEY+7 值结束。这些写入操作中
必须使用STHX,因为这些写入不能在相邻的总线循环上完成。用户软件一般通过通信接
口(如串行 I/O)从MCU 系统外部获取密钥代码。
3. 向FCNFG 寄存器中的KEYACC 写入0。如果写入的8 字节密钥与Flash 位置上保存的
密钥相匹配,那么SEC 位被自动修改为1:0,同时安全性将关闭,直到下一次复位。
我现在测试Flash写程序,后台监控发现是可以写进去的,如果将此写程序嵌套到以上步骤,发现MCU并没有解密,这个真的是不知道该如何解决了,各位有没有什么好的意见和看法,谢谢!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2020-4-26 22:12
  • 签到天数: 586 天

    连续签到: 1 天

    [LV.9]以坛为家II

    1

    主题

    1620

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    3240
    最后登录
    2020-4-26
    发表于 2016-5-16 13:01:26 | 显示全部楼层
    学习一下,
    2020加油
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    41

    帖子

    0

    注册会员

    Rank: 2

    积分
    198
    最后登录
    2017-4-18
     楼主| 发表于 2016-5-17 13:24:46 | 显示全部楼层
    没有人回帖吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-11-29 19:14
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    20

    主题

    405

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1529
    最后登录
    1970-1-1
    发表于 2016-5-18 15:03:24 | 显示全部楼层
    我娘她女儿真萌 发表于 2016-5-15 10:47
    数据手册中写到:执行Flash程序的同时可进行编程和擦除操作,我尝试着不将执行代码映射到RAM区,测试后发现 ...

    不敢你是用汇编还是用C,操作(擦除,写)flash的代码都是要Copy到RAM中执行的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    41

    帖子

    0

    注册会员

    Rank: 2

    积分
    198
    最后登录
    2017-4-18
     楼主| 发表于 2016-5-20 13:53:36 | 显示全部楼层
    blue_blue 发表于 2016-5-18 15:03
    不敢你是用汇编还是用C,操作(擦除,写)flash的代码都是要Copy到RAM中执行的 ...

    对的,我擦写Flash都是在RAM中运行的,这个擦写函数我已经验证通过的,可以对Flash正常操作
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    41

    帖子

    0

    注册会员

    Rank: 2

    积分
    198
    最后登录
    2017-4-18
     楼主| 发表于 2016-5-25 14:02:30 | 显示全部楼层
    看来没人做过这个啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    358

    帖子

    0

    高级会员

    Rank: 4

    积分
    924
    最后登录
    1970-1-1
    发表于 2016-5-25 18:37:23 | 显示全部楼层
    学习中
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-11 10:20 , Processed in 0.112426 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表