软件加密:其目的是不让人读懂你的程序,不能修改程序,你可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位,如8031/8051有一个用户标志位,PSW.1位,是可以利用的。
程序入口地址不要用整地址,如:XX00H,XXX0H,可用整地址-1,或-2,而在整地址处加二字节或三字节操作码。
在无程序的空单元也加上程序机器码,最好要加巧妙一点。
用大容量芯片,用市场上仿真器不能仿真的芯片,如内部程序为64KB或大于64KB的器件,如:AVR单片机中ATmega103的Flash程序存储器为128KB。
AT89S8252/AT89S53中有EEPROM,关键数据存放在EEPROM中,或程序初始化时把密码写到EEPROM中,程序执行时再查密码正确与否,然后.......。当然不能告说人家这是什么器件,尽量不让人家读懂程序,在这里说谎,骗人是正当防卫。
用“真真假假,假假真真” ,把几种不同品种的单片机放在同一设备中,如主芯片用AVR(说是MCS51),键盘显示用AT89C2051(说是GAL),I/O口扩展驱动用PIC(说是AT90S1200)等,当然要求你知识面广一点。如果你用高级语言C编写程序就简单了,因为C语言程序移植方便。
有些国家的产品能做到三年保修,三年保不坏,三年后保坏,或三年后保有故障,可能用什么技术?你自己去想吧。例:每次开机或关机, EEPROM某单元加1,也可二个、三个单元连接起来计数,达到某值停止工作。
硬件用软件代替,软件用硬件代替。用大规模CPLD可编程器件。