
本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。7 |6 A N2 r. M/ a 该芯片主要应用非常广泛,日常消费类电子产品,工控设备,电机驱动,变频器,打印机等等。/ N3 g4 I2 F) A( U5 e+ s& o 5 l7 Z! H C. }/ R- q( ]% _ ![]() % E: N6 J2 q) T, q 一般来说,攻克芯片解密的方法,都是采用物理破解的方法,即重新改变芯片内部线路的方法,这种方法所读取出来的程序正确率为100%。针对此款STM32F103我们也是采用此方法。另外推荐下关于单片机程序破解的另一篇内容:单片机程序被破解了?4 w P& f. B' D3 @ 在芯片解密行业中,最正确的解密方法就是采取硬件解密的方法,即用特定的溶脂溶解开芯片,让其晶片裸露出来,在操作这一步的时候,也是需要有一定的技巧,当然,在操作这一步的时候,有时候,也可能会把芯片溶解坏,就是把线溶解断了,这样芯片就完全用不了了,这就是为什么在解密的时候,最好可以提供2颗母片,就是防止一颗失败无法进行。& L$ j5 \3 g$ Q. j % K1 a' ~' I: q 当然,如果只有一个母片的时候,就可以拿去绑定厂重新绑定,但这样的话,就会产生一定的费用,时间上也大大加长了,一般绑定一次的话需要一周的时间,如果绑定测试不通过的话,那么就要再次拿去绑定,如果是这么一种情况的话,技术人员就会重新再开一个芯片,争取在最短的时间内将程序提取出来。以下就是开完片后的芯片: # a+ X# T3 L, U) {+ F ![]() 当晶片裸露出来后,我们就要用到高倍显微镜和FIB(聚焦离子束设备),用这两种设备,查找芯片的加密位置,通过改变其线路的方法,将加密芯片变为不加密的一个状态,然后再用编程器,将芯片内部的程序读取出来。 4 A! Y) O2 C( p0 A* k X5 f ![]() 像这种读取芯片程序的方法,其正确性是100%。为什么呢?因为我们知道,芯片的程序一般是首先写了C语言,在写入芯片之前,要将C语言反汇编成汇编语言,当汇编语言通过编程器写入芯片内部后,就成了机器码,而我们解密的方法,就是把最终的程序读取出来,所以,一般解密出来的程序的格式都是机器码。 ![]() 1 M7 Z$ Z4 v! {( m" Q/ X( o) f 读取出来的二进制代码,如果没有软加密(UID绑定加密),那烧录到新的芯片中是完全可以正常工作的,如果存在软加密,那就需要去除软加密。& k; u1 K0 J0 a" j. l9 v 2 N2 \( b, }; z- g# Y% L |