历史上的今天
返回首页

历史上的今天

今天是:2024年11月12日(星期二)

正在发生

2021年11月12日 | stm8 唯一ID号加密方法.思路

2021-11-12 来源:eefocus

1.读出ID号


#if defined(STM8S103)

     #define     ID_BaseAddress         (0x4865)

#else//  defined(STM8S105)

     #define     ID_BaseAddress         (0x48CD)

#endif

void GetUniqueID(unsigned char *p)

{

     unsigned char i;

     unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);   

     for(i=0;i!=12;i++){*p++=*pIDStart++;}

}




2.把读出的ID号生成其他数据。不一定就是12字节的!并保存在内部EEPROM。在这个模块准备2个函数.一个用于加密.一个用于解密


void StmWriteUniqueID(unsigned char Addr)

{

     unsigned char i;

     FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);

     while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET)FLASH_Unlock(FLASH_MEMTYPE_DATA);

     unsigned char *pEE=(unsigned char *)(FLASH_DATA_START_PHYSICAL_ADDRESS+(u32)Addr);

     unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);

     for(i=0;i!=6;i++)//由12字节生成12*N个字节

    {

         *pEE++=第1种算法,商业原因.我的算法就不公开了.大家可以准备一个数组查表

        while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);  

         *pEE++=第2种算法,商业原因.我的算法就不公开了。大家可以准备一个数组查表

        while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);  

         。。。。

        第N种算法

    }              

}

//解密函数

unsigned char StmCheckUniqueID(unsigned char Addr)


3.主函数里面设置一个时间最好设置长一点。半个钟或其他,让人家难跟踪

    while(1)

     {

         其他任务...............

         /////////////////////////////////////////////////////////////////////////

          if((Flag&FLAG_CHECK_ID)==FLAG_CHECK_ID)

         {

             Flag&=~FLAG_CHECK_ID;

             if(StmCheckUniqueID(UniqueIDAddress)==1){IsIDCorrect=0x01;}//正确写入

            else{IsIDCorrect=0x00;}//错误写入      

         }        

         /////////////////////////////////////////////////////////////////////////

               其他任务...............

     }

         /////////////////////////////////////////////////////////////////////////



总结:

这样做还是能被破解的。但对方已经很难跟踪了.


如果破解者对芯片熟悉.他会根据ID号的地址!----毕竟芯片ID号的地址是固定的.找到对应的调用程序.加密时用到芯片ID号的地址。解密时也有用到芯片ID号的地址


所以只有对方熟.是能很快跟踪到加密/解密程序.而在解密程序入口就return出去!


这种方法已经很实用了.毕竟不是太专业的很难破


推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

随着技术实力的增强,ETA Electric Industry Co Ltd开始积极拓展国内外市场。他们参加了多个国际电子展会,与世界各地的潜在客户建立了联系。同时,公司还加强了与国内外大型电子企业的合作,为其提供定制化的解决方案。这些举措极大地提升了公司的知名度和市场份额,为公司的快速发展奠定了基础。

Bomar Interconnect公司的发展小趣事

随着全球化趋势的加强,Bomar Interconnect公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术引进、合资建厂等方式,加快了公司的国际化进程。同时,公司还加强了海外市场的开拓力度,设立了多个海外销售中心和分支机构,为公司的全球化发展提供了有力支持。这些举措不仅拓宽了公司的业务范围和市场空间,也提升了公司在国际市场上的竞争力。

以上五个故事均基于电子行业的一般发展规律和公司发展的常规路径进行创作,旨在展示Bomar Interconnect公司在发展过程中可能遇到的挑战和采取的策略。需要强调的是,这些故事并非基于真实事件编写,因此可能与公司的实际情况存在出入。如需了解Bomar Interconnect公司的真实发展故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

Genesis Microchip公司的发展小趣事

随着战后的经济复苏和科技的快速发展,GI开始积极寻求业务多元化和国际化的发展道路。公司不仅继续深耕电子技术领域,还逐渐涉足通信、计算机等多个领域,推出了包括通信设备、计算机硬件在内的多款新产品。同时,GI也积极开拓海外市场,通过设立分支机构、与当地企业合作等方式,成功将产品销往全球多个国家和地区。这一阶段的成功,使GI成为了名副其实的跨国电子巨头。

Acopian Power Supplies公司的发展小趣事

进入21世纪后,电子行业面临着前所未有的变革和挑战。随着信息技术的飞速发展,云计算、大数据、人工智能等新兴技术不断涌现,对传统电子企业提出了更高的要求。GI积极响应行业变革的号召,不断加大在新技术研发方面的投入,努力推动产品升级和转型。同时,公司也积极拥抱互联网思维,加强与互联网企业的合作与融合,共同探索电子行业的新未来。这一阶段的努力,使GI在激烈的市场竞争中保持了领先地位,并继续为电子行业的发展贡献着力量。

需要注意的是,以上故事是基于行业常识和通用发展路径构建的,并非直接针对GI的官方历史。由于GI的具体发展历史和详细故事可能因资料限制而无法全面呈现,因此以上内容仅供参考。

安碁科技(AKER)公司的发展小趣事

随着市场需求的不断增长,安碁科技开始寻求扩大产能和全球化布局。1999年,公司正式量产电压控制振荡器(VCXO),并购置了更大的厂房以扩大产能。随后,安碁科技陆续在美国和中国大陆设立子公司和办事处,进一步拓展国际市场。这一系列的举措,不仅提高了公司的产能和效率,也使其能够更好地服务全球客户,实现业务的快速增长。

Azoteq公司的发展小趣事

最近,Azoteq宣布推出了一款电容、电感和霍尔效应组合传感器——IQS620。这款传感器是传感领域的重大突破,它将电容式触摸和接近传感、电感传感以及霍尔效应传感集成在一个低姿态的封装中。这种高度集成化的设计使得IQS620在可穿戴设备、移动设备和安全等多个领域都有广泛的应用前景。IQS620的推出,不仅展示了Azoteq在传感技术方面的深厚实力,也为其在未来的市场竞争中注入了新的活力。

这些故事展示了Azoteq公司在电子行业中的发展历程和取得的成就。从创立初期的LightSense™系列产品,到后续的电容式触摸和接近感应市场拓展,再到PowerSense™和ProxFusion®产品系列的推出,以及最新的IQS620传感器的发布,Azoteq始终紧跟市场趋势,不断创新,为客户提供高质量的半导体解决方案。

问答坊 | AI 解惑

请教一下,充电电路中开关管发热的问题

最近做了个充电器,BUCK电路中的开关管发热严重,输入是12V的电源。 第一种情况:当充电电压输出为4.2V,电流为500MA的时候开关管发热严重,恒压充电的时候电压恒定4.2v电流慢慢减小这时候开管发热现象减轻。 第二种情况:当充电电压输出为8.4 ...…

查看全部问答>

LM317电源制作

[ 本帖最后由 yuandayuan6999 于 2010-5-14 22:09 编辑 ]…

查看全部问答>

msp430 SPI通信

有没有人做过msp430单片机的SPI通信   望大侠帮帮…

查看全部问答>

新手提问,请教单片机硬件该怎么设计呢

大家好,我刚刚学单片机一个月了,用买来的学习机做好了许多试验,现在我想自己买元件,从硬件开始设计,我知道该买些元件啊,板子啊,来焊接,但我不懂具体怎么操作,请问有没有讲这方面的书呢,电子方面的啊,谢谢大家推荐…

查看全部问答>

最牛的无线数传资料

无线数传模组: a.通用数传模组    WAP200B、EM200D、GW200B,最大100mW,64个频道,传输距离800米左右,内置前向纠错,最高速度19200(接口可达115200); b.高灵敏度数传模组   WAP200C、GW200KB,最大20mW,64个频道,传 ...…

查看全部问答>

MSP430中 timer_B和ADC12中断的矛盾

我现在遇到的问题是 ADC12IE = 0x01; 会影响timer_B定时的精度 但是 我查过手册,上面说timer_B高于ADC12中断优先级(先是用的timer_A,发现现象不对) 只要屏蔽ADC12IE = 0x01; 定时就精确了! 求解,求赐教!…

查看全部问答>

STM32现在有没有带总线和USBHOST或者OTG的片子?

                                  …

查看全部问答>

请问哪儿有Jlink-ob_stm32的原理图?

                                 看了网上的,觉得不错,想做个玩玩,只不过网上的图不清楚,不知哪儿有清楚的,说是IAR提供的开发板图上面的一部分 ...…

查看全部问答>

mma7455 加速度传感器怎么校正?

请教一下,mma7455 加速度传感器怎么校正,x,y,z校正值是多少?谢谢 [ 本帖最后由 sanxin126 于 2011-7-27 21:09 编辑 ]…

查看全部问答>

24C02第一次读取问题

自己写了个小程序,把51开发板上的键盘,LCD,串口通信,24C02存储都整合到了一起。程序大致分为两块,一个是串口通信,一个是数据存储、查询。PC可以向单片机发送数据,单片机接受并显示,同时可以将其存储进24C02中。查询模块可以读取24C02中的数 ...…

查看全部问答>