一般来说,攻克芯片解密的方法,都是采用物理破解的方法,即重新改变芯片内部线路的方法,这种方法所读取出来的程序正确率为100%。针对此款STM32F103我们也是采用此方法。另外推荐下关于单片机程序破解的另一篇内容:单片机程序被破解了?
在芯片解密行业中,最正确的解密方法就是采取硬件解密的方法,即用特定的溶脂溶解开芯片,让其晶片裸露出来,在操作这一步的时候,也是需要有一定的技巧,当然,在操作这一步的时候,有时候,也可能会把芯片溶解坏,就是把线溶解断了,这样芯片就完全用不了了,这就是为什么在解密的时候,最好可以提供2颗母片,就是防止一颗失败无法进行。
当然,如果只有一个母片的时候,就可以拿去绑定厂重新绑定,但这样的话,就会产生一定的费用,时间上也大大加长了,一般绑定一次的话需要一周的时间,如果绑定测试不通过的话,那么就要再次拿去绑定,如果是这么一种情况的话,技术人员就会重新再开一个芯片,争取在最短的时间内将程序提取出来。以下就是开完片后的芯片:
当晶片裸露出来后,我们就要用到高倍显微镜和FIB(聚焦离子束设备),用这两种设备,查找芯片的加密位置,通过改变其线路的方法,将加密芯片变为不加密的一个状态,然后再用编程器,将芯片内部的程序读取出来。
像这种读取芯片程序的方法,其正确性是100%。为什么呢?因为我们知道,芯片的程序一般是首先写了C语言,在写入芯片之前,要将C语言反汇编成汇编语言,当汇编语言通过编程器写入芯片内部后,就成了机器码,而我们解密的方法,就是把最终的程序读取出来,所以,一般解密出来的程序的格式都是机器码。
读取出来的二进制代码,如果没有软加密(UID绑定加密),那烧录到新的芯片中是完全可以正常工作的,如果存在软加密,那就需要去除软加密。