软件加解密的前提是要有软件,即单片机程序,可以是以源代码的形式(C语言或汇编语言程序)提供,或是以二进制(bin格式或hex格式等)提供。一般学习借鉴别人的程序,一般是以二进制形式提供(此二进制程序一般是从上述硬件解密的过程中得到)。随着科技的发展,一般由硬件解密过程获得的二进制程序,还需要做进一步的软件分析、修改,即软件解密过程,程序功能才能真正的有效(除非没有做任何软件加密的程序,稍微高手一点的工程师会对自己的软件加密的),否则程序只能烧到母片上有效,而烧到同型号的其它芯片,某些关键功能会失效,甚至整个程序将不工作。
其实软件加密原理很简单,就是利用单片机IC厂商,为每片出厂芯片的某一特殊全球唯一识别参数,即ID号做为密钥,对程序进行加密。如果以本ID号的程序烧到另一ID号的芯片中,程序中经软件加密过的部分的功能将完全失效。
要解密上述经软件加密过的程序,唯一的途径,就是反汇编程序,分析单片机反汇编后的汇编程序,将程序中软件加密相关的密钥去掉,然后编译得到新的程序。这项工作需要的不只是耐心,更多的是专业知识与经验。对于搞技术的来说写文字的东西是最为受折磨的事,先写到这里。