单片机软件加密和解密原理浅析
时间:05-17 13:53 阅读:1022次
*温馨提示:点击图片可以放大观看高清大图
简介:单片机加解密可划分为两大类,一类是硬件加解密,一类是软件加解密。硬件加密,对于单片机来说,一般是单片机厂商将加密熔丝固化在IC内,熔丝有加密状态及不加密状态,如果处于加密状态,一般的工具是读取不了IC里面的程序内容的,要读取其内容,这就涉及到硬件解密,必须有专业的硬件解密工具及专业的工程师。现在重点谈谈软件方面的加解密。
软件加解密的前提是要有软件,即单片机程序,可以是以源代码的形式(C语言或汇编语言程序)提供,或是以二进制(bin格式或hex格式等)提供。一般学习借鉴别人的程序,一般是以二进制形式提供(此二进制程序一般是从上述硬件解密的过程中得到)。随着科技的发展,一般由硬件解密过程获得的二进制程序,还需要做进一步的软件分析、修改,即软件解密过程,程序功能才能真正的有效(除非没有做任何软件加密的程序,稍微高手一点的工程师会对自己的软件加密的),否则程序只能烧到母片上有效,而烧到同型号的其它芯片,某些关键功能会失效,甚至整个程序将不工作。
其实软件加密原理很简单,就是利用单片机IC厂商,为每片出厂芯片的某一特殊全球唯一识别参数,即ID号做为密钥,对程序进行加密。如果以本ID号的程序烧到另一ID号的芯片中,程序中经软件加密过的部分的功能将完全失效。
要解密上述经软件加密过的程序,唯一的途径,就是反汇编程序,分析单片机反汇编后的汇编程序,将程序中软件加密相关的密钥去掉,然后编译得到新的程序。这项工作需要的不只是耐心,更多的是专业知识与经验。对于搞技术的来说写文字的东西是最为受折磨的事,先写到这里。