芯片解密怎样防止程序丢失
芯片解密是通过各种手段获取芯片内的程序信息,通过反汇编使之能达到原芯片的功能。在解密芯片时需注意何防止单片机程序丢失,如果程序信息丢失或出错将使芯片解密失败,芯片解密防止程序丢失的方法具体有哪些?
1.提高电源稳定性,降低噪声干扰
尽量改善电源。并不是说单片机能工作就行,电源要设计好,加上104去耦电容安置在元件附近的电源处,用来滤除高频噪声,使电压稳定干净,保证元件的正常工作。改进电路布局等措施。
使用带电压监测的706硬件看门狗。即保证可靠复位,又防止CPU低电压工作。
2.使用带电压监测的复位芯片
防止上电/下电时,单片机电压处于工作和不工作的临界时,单片机自己胡来。上电后,电容从0V逐渐升到VCC;下电时,从VCC逐渐降到0V。不管转电压转换的多快,总会有一段时间处于电压不足的不稳定状态,什么情况都可能发生。
3.足电压编程、慢速编程
让Flash/EEP存储器在编程时充入足够电荷。
需要可靠性的场合尽量低速写入,把工作加到芯片上限 (一搬5V芯片用5.5V,3V芯片到3.6V),能明显提高数据可靠性。
4.保护编程口
保护编程的IO口,加些上拉或下拉电阻。如IAP、ISP、JTAG等。防止单片机复位之前的时间被处界杂波干扰,误入编程状态。
例1:ATMEL的ISP口的SCK、MISO脚尽量做输出使用。防止外围器件对这些脚产生跳动电平。防止误入ISP状态。对JTAG口也要做同样的保护。
例2:STC单片机,尽量设置成P1.1P1.0为低电平时才可以编程。
5.产品尽量禁止编程功能
比如AVR单片机,设置JTAGEN=1 OCDEN=1 因为JTAG有改写FALSH的能力。在产品阶段用不着它,把它禁止。如果可能,还可以设置熔丝位,禁止ISP功能。但是你要考虑清楚,禁止ISP功能以后就只能通过并行方式改写程序了。
还有一些单片机有专门的引脚,控制编程允许。那么咱们可以让它处于禁止编程的状态。