广告

您的位置 首页 被动

单片机的MRC多重加密技能

2008年,我的一个朋友因为他们的控制主板被盗抄了,损失相当巨大,他找到了我寻求加密措施,由于他们采用的是ATmega128单片机,尽管他们已

2008年,我的一个朋友因为他们的操控主板被盗抄了,丢失适当巨大,他找到了我寻求加密办法,因为他们选用的是ATmega128单片机,虽然他们现已采取了加密,但仍是被破解了,为此我查找了网络上的大部分材料,都没有一个详细有用的计划。经过自己研讨后,在这儿介绍一种有用的MRC多重加密技能,现已用到了实践产品中,能够说这种加密技能对错常有用的。

1. 单片机程序的破解进程:

现在关于AVR单片机来讲,自身有加密熔丝位,一旦熔丝被烧写程序就不能读出了。但这种加密技能能够经过芯片揭盖侵入式破解,大多数破解公司都把握了这种技能,破解费仅1000元左右。

关于这种状况现已不可防止,假如源码没有其他加密办法的话,把反汇编出来的程序编译一下,换到原电路板上即可运转了。

那么怎样对源码做加密处理呢?

事实上,不论你怎样处理,都能够剖析源码,找出你的要害所在,并修正汇编出来的程序来破解。

而咱们要做的是,将加密部分尽或许躲藏,打乱,使得破解者只能逐个剖析来破解,这样他不但要悉数了解产品的作业特色,功用,还要了解内部悉数的硬件规划,以及芯片的作业原理。关于一些特别算法他或许永久也搞不明白,这样使得破解的本钱远远大于从头规划的本钱。

但凡从事盗版出产的单位根本没有开发才干,而破解者仅仅一些二三流工程师,真实的一流工程师对破解都嗤之以鼻。

2. MRC加密技能:

为啥叫MRC秘要技能,因为这是香港MRC公司选用的有用加密技能,这种技能不需求添加硬件本钱,首要经过以下几个技能完成:

  • 使用AVR的校准值,做身份认证,100片里边最多10片的校准值相同。
    1)在头文件里界说:

#define OSCID 0XAF //校准数值,有必要设置成与MCU共同

2)在特别程序(中止程序,特别算法)里

unsigned char *p;

p=(unsigned char *)0x68; //赋值,芯片为mega88,OSCID寄存器=0X66,不直接写0X66,知道为什么吗?

…… //赋值和康复句子,中心有许多其他句子

p–;p–; //康复,

if ((*p-8)==OSCID-8) //判别,为啥这儿也不直接写为OSCID?

{

//放置正确的处理程序

}

else

{

//成心写错核算的程序

}

相似上述这样的程序能够放在中止处理程序,CRC算法,纠错程序,编解码程序,快速开方程序等要害程序里,别的长期(几天,几个月)才运转一次的程序里也要放置来抵挡仿真器的单步盯梢。最好每个程序里的处理都不相同,不要写成子程序。

  • 使用随机数发生代码长度起浮。

#if (OSCID)%3==0 //这儿使用校准值来扰动,也可使用编译时的时刻来扰动。

a++; //也或许是个函数

#endif

#if (OSCID)%3==1

a++;

b++;

#endif

#if (OSCID)%3==2

a++;

b++;

c++;

#endif

把相似这样程序的条件编译句子放入要害程序,使程序代码起浮,防止解密者比照两样片的16进制代码来寻觅不同的方位。

  • 使用随机数使静态变量起浮。

每个芯片的变量地址在RAM或EEPROM中都是起浮的。

unsigned int IR_buff[100+(OSCID)%7]; //不同的芯片缓冲区长度不同

…… //其他变量界说在下面

因为编译后,发生的代码差异很大,这个办法能够抵挡反汇编代码比对来寻觅有不同的方位。

使用AVR的校准值与特别器材内部的寄存器绑定。

这儿用CC1101无线收发器来举例

rfSettings.PKTCTRL1= 0x27^ (OSCID^0X55); //

halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1^(OSCID^0X55)); //写到寄存器

……

#define CCxxx0_SRX 0x34-OSCID

halSpiStrobe(CCxxx0_SRX+OSCID); //进入接纳状况

3. 安全性评价:

假如破解者能读出多个样片的汇编程序。他无法经过比对16进制或汇编后的代码来取得这些样片的差异。

他只要仔细阅读汇编代码来免除加密的代码,关于一些特别算法,他要搞清楚原理才干修正,不然或许埋下极大毛病危险。关于单步追寻,因为长期程序并没触发,因而不能确保都能追寻得到,有些程序需求特定的条件才干激活,因而也不能确保逐个追寻得到,这样要完全破解,解密者只能在悉数弄清楚设备的功用后,逐个免除,逐个烧录,逐个测验。这样的作业量或许适当的大。
关于相似CC1101这样的器材,寄存器既多又杂乱,略微错一个当地就或许引起不可思议的毛病。

4. 结语:

本文提出的MRC加密技能不是不能破解,而是破解的价值很大,即便破解后用于产品中危险也很大,有或许加密程序里含有自毁程序,在必定时刻后才干发生,届时或许导致无法幻想的丢失,因而用户不要贪小便宜,应该购买具有自主知识产权的产品。
经过多重MRC加密,能够大大冲击盗版者和破解者的决心,到达为自主立异产品保驾护航的意图。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/260095.html

广告

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部