软硬兼施
采用软件和硬件结合的方法,需要对芯片的内部结构非常的熟悉。
另外还有其他一些破解技术,例如电子探测攻击、过错产生技术等等,但是最终目的只有一个,就是能够模仿出目标MCU的功能就可以了。
看到这里大家应该明白一个道理,破解MCU并不能做到把MCU中的程序原封不动的还原出来。目前的技术也做不到,至少国内应该做不到。针对以上情况,加密芯片应运而生,初期确实能很好的保护MCU的安全,但很快就被找到了漏洞。
我举个实际破解的例子分析一下,大家就能够明白了。
加密原理:
MCU和加密芯片各存储一条认证秘钥,存储同样的加密算法;
MCU产生随机数发给加密芯片,后者用秘钥加密后将密文返回,此时MCU解密后,比对明文是否和生成的随机数相等。如果相等,程序正常运行;如果不相等,出错处理。
因为盗版商没有这条秘钥,加密芯片与MCU交互的数据又是随机变化的,无法找到规律,所以只能把加密芯片的程序破解了,再复制一片加密芯片才能让MCU的程序跑起来。而加密芯片不同于通用MCU,它内部有很多安全机制,破解难度非常大。
这种加密方案看似非常安全,但其实还是有漏洞的。
破解方法:
首先按照第二种破解方法,获取到MCU的HEX文件。此处省略N步,不再复述。
使用软件进行HEX反编译,反编译软件目前有很多。
在反编译的程序中,找到对比点,CJNE语句可能就是这个对比点。因此只要把那行语句删除,然后重新把汇编语言下载到MCU中,破解工作就完成了。此时即使没有加密芯片,MCU也能正常运行了。
其实原因很简单。MCU是要对加密芯片的返回值进行判断的,那么不让它做判断,这样一来不管加密芯片返回值是什么,程序都能正常运行。
因此这种加密方案很快就被破解了。当然也不是这么绝对,因为有些MCU即使剖片也不能获得里面的HEX或者BIN文件,所以这种破解方案也要看MCU的安全等级够不够高。但是足以说明一个问题,这种通过对比加密结果来实现加密的方案,安全等级还是不够高,还是有破解漏洞的。
软硬兼施
采用软件和硬件结合的方法,需要对芯片的内部结构非常的熟悉。
另外还有其他一些破解技术,例如电子探测攻击、过错产生技术等等,但是最终目的只有一个,就是能够模仿出目标MCU的功能就可以了。
看到这里大家应该明白一个道理,破解MCU并不能做到把MCU中的程序原封不动的还原出来。目前的技术也做不到,至少国内应该做不到。针对以上情况,加密芯片应运而生,初期确实能很好的保护MCU的安全,但很快就被找到了漏洞。
我举个实际破解的例子分析一下,大家就能够明白了。
加密原理:
MCU和加密芯片各存储一条认证秘钥,存储同样的加密算法;
MCU产生随机数发给加密芯片,后者用秘钥加密后将密文返回,此时MCU解密后,比对明文是否和生成的随机数相等。如果相等,程序正常运行;如果不相等,出错处理。
因为盗版商没有这条秘钥,加密芯片与MCU交互的数据又是随机变化的,无法找到规律,所以只能把加密芯片的程序破解了,再复制一片加密芯片才能让MCU的程序跑起来。而加密芯片不同于通用MCU,它内部有很多安全机制,破解难度非常大。
这种加密方案看似非常安全,但其实还是有漏洞的。
破解方法:
首先按照第二种破解方法,获取到MCU的HEX文件。此处省略N步,不再复述。
使用软件进行HEX反编译,反编译软件目前有很多。
在反编译的程序中,找到对比点,CJNE语句可能就是这个对比点。因此只要把那行语句删除,然后重新把汇编语言下载到MCU中,破解工作就完成了。此时即使没有加密芯片,MCU也能正常运行了。
其实原因很简单。MCU是要对加密芯片的返回值进行判断的,那么不让它做判断,这样一来不管加密芯片返回值是什么,程序都能正常运行。
因此这种加密方案很快就被破解了。当然也不是这么绝对,因为有些MCU即使剖片也不能获得里面的HEX或者BIN文件,所以这种破解方案也要看MCU的安全等级够不够高。但是足以说明一个问题,这种通过对比加密结果来实现加密的方案,安全等级还是不够高,还是有破解漏洞的。
举报