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出去!
这种方法已经很实用了.毕竟不是太专业的很难破
上一篇:stm8S103单片机手轮DIY
下一篇:STM8单片机+RC522电路原理图+读写卡源代码
推荐阅读
史海拾趣
近年来,随着电子行业的不断发展壮大,FARNELL公司也开始向多元化方向发展。除了电子元器件分销业务外,公司还涉足了工业自动化、智能制造等领域。这种多元化的发展战略使FARNELL公司的业务范围更加广泛,也为公司带来了新的发展机遇。
以上五个故事概述了FARNELL公司在电子行业中的发展历程和主要成就。这些故事展示了FARNELL公司不断创新、积极应对市场挑战的精神以及其在电子行业中的重要地位。
2018年,FINISAR被II-VI Incorporated(II-VI公司)收购。II-VI是一家同样位于美国的光电子元件和材料制造商,专注于提供各种光学产品和解决方案。这次收购对FINISAR而言是一次重要的发展机遇。通过整合两家公司的资源和技术优势,FINISAR能够进一步扩大在光通信市场的业务规模,提升技术实力和产品组合。同时,这也为FINISAR带来了更广阔的发展空间和更多的市场机会。
以上五个故事展示了FINISAR公司在电子行业中从创立到发展壮大的历程以及所取得的成就和面临的挑战。这些故事不仅反映了FINISAR在技术创新、全球化布局、知识产权保护以及企业发展战略等方面的努力和成果,也展现了公司在光通信行业中的重要地位和影响力。
除了电源管理技术外,Delta在工业自动化领域也取得了重要突破。公司开发了一系列工业自动化产品和解决方案,如变频器、PLC、HMI等,广泛应用于机械制造、自动化生产线等领域。这些产品和解决方案不仅提高了生产效率,降低了生产成本,还为客户提供了更加智能化、自动化的生产方式。
随着产品线的不断完善,AITSEMI公司开始积极寻求市场机会,并逐步在全球范围内建立销售网络。通过与各大消费电子品牌的紧密合作,AITSEMI的芯片产品成功应用于音频功放和电源管理等领域,为全球消费者提供了更优质的产品体验。同时,公司还积极拓展医疗、工业控制、照明等新兴市场,为公司的持续增长提供了强大的动力。
随着技术的不断进步,Dresden Elektronik公司不断加大对研发的投入,致力于推动技术的创新和突破。一次偶然的实验中,公司的研发团队发现了一种新的材料,能够显著提高电子元件的性能和稳定性。这一发现被迅速转化为产品,并成功推向市场,使公司的产品在竞争中脱颖而出。
随着技术的不断进步和市场的不断变化,Elite意识到单一市场已经无法满足公司的发展需求。因此,公司开始积极拓展国际市场,寻求更广阔的发展空间。在海外市场拓展过程中,Elite注重了解当地市场的需求和文化特点,制定针对性的市场策略。同时,公司还积极与当地企业建立合作关系,共同开拓市场。这些努力让Elite在国际市场上取得了不俗的成绩,也为公司的持续发展注入了新的动力。
38V/100A可直接并联大功率AC/DC变换器 摘要:介绍了一种38V/100A可直接并联的大功率AC/DC变换器。采用了有源功率因数校正技术以实现系统的高功率因数。DC/DC主电路采用电流型PWM芯片UC3846控制的半桥变换器,并提出了一种新的IGBT驱动 ...… 查看全部问答∨ |
|
这是一个温度显示程序,用的是DS18B20测温度,有几个问题我想问问大家。1、四个数组中的后三个数组(红色的)都表示是什么意思?尤其是最后一个,怎么还有一样的数值?2、小数位的值是怎么来的?我是个菜鸟,想半天也没想明白。 #include \"avr/io. ...… 查看全部问答∨ |
|
买了一个128M的FLASH的mini2440,将光盘自带的u-boot.bin烧入后,在超级终端里看不到任何信息。。。。。。。。 急!请大家帮帮忙,谢谢了~… 查看全部问答∨ |
|
难得休息两天,回到工作,第一件事情是给媳妇帮忙翻译论文,而手头上的事情虽然充满着挑战,当总体还是应付的过来。由于很长一段的时间都是直接给国外做支持工作,对比国内项目的管理,让我生出了一种感受,同样的方法,同样的流程,到了我们这里一 ...… 查看全部问答∨ |
如题:在ADS1.2下(处理器pxa270) 我想用malloc可以吗 如: void main() { char strTitle[] = "*************Pxa270Boot*************"; char *pch = (char *)malloc(strlen(strTile)); mem ...… 查看全部问答∨ |