打印
[国产单片机]

单片机的**行业的形成

[复制链接]
楼主: McuPlayer
手机看帖
扫描二维码
随时随地手机跟帖
21
McuPlayer|  楼主 | 2009-3-30 11:04 | 只看该作者 回帖奖励 |倒序浏览

千万比选冷门IC

到时候不仅仅是采购骂街的问题了,老板跳起来才最恐怖。

使用特权

评论回复
22
McuIsp| | 2009-3-30 21:31 | 只看该作者

呵呵,也来听课。

这么容易**,都想改行不做单片机了。

使用特权

评论回复
23
gtw| | 2009-3-31 00:55 | 只看该作者

要做到

可以破身,但不能破心,就够了

使用特权

评论回复
24
木头东瓜| | 2009-3-31 09:00 | 只看该作者

都去**,谁来写程序?

呵,不一定要在程序上下功夫吧
多做几个软硬陷阱更加重要

使用特权

评论回复
25
McuPlayer|  楼主 | 2009-3-31 11:17 | 只看该作者

所以设计时就要尽量提高**成本

绝对避免破解是不可能的,只好退而求其次了

使用特权

评论回复
26
zxp12345| | 2009-3-31 17:52 | 只看该作者

要能做到一读程序就自毁程序就好了

现在听到好多IC解密才几百块?做单片机心都寒了。
怎么加强加密值得讨论讨论。

使用特权

评论回复
27
cnchip| | 2009-4-1 19:18 | 只看该作者

居然没一个人回应vwwj

我倒觉的,都别研究了,费这神干啥!
不是有句话叫明枪易躲暗箭难防吗?

人家毕竟是专业搞**的,水平肯定在你之上,我们哪有这些精力跟他们天天纠缠?

所以,应该另辟蹊径,别正面对抗!

谢谢vwwj,值得研究!

我考虑的方法就像软件的注册码,首次开机时随机生成一个序列号,要求用户输入对应的注册码,通过了就运行,不通过的话也不要一点不运行,要让人家误以为运行了,当然,要设置一个暗号,以便你自己或者y远程时问用户有什么状态(比如到底鸣叫了几声等),这个隐蔽的状态就表示正常通过了!
否则就假运行,但让程序随机出问题,使人家误以为真的不稳定。
最后可能还得出一个结论,**的就是不稳定!

另外,把公司名、开发者的名字加密后保存起来,还有序列号,所有文字性的东西均不要明文保存,防止引起人家注意!

加公司名可以设置一个隐蔽操作调出显示,为以后可能的官司或者公开场合让对方难堪时用,否则人家可能还信誓旦旦说你抄他的呢。

另外,每次复位后,程序全空间CRC校验,发现不对也是假装正常运行!

具体流程正在考虑,打算在下一次产品上用上,这样的话与其**还不如自己重新写一套,还可以防止一个.hex无限复制,使之完全在自己的掌控中,就让他**去吧!这类软件不像windows的通用软件,好东西面试了全世界的高手都会去研究,MCU这类东西相对来说是很偏门的,因此基本可以认为足够安全了!

不足之处敬请指出,vwwj的方法更是独特,谢谢了,涨见识。

使用特权

评论回复
28
lhj200304| | 2009-4-2 15:45 | 只看该作者

记号,看看再说了

使用特权

评论回复
29
dragon_hn| | 2009-4-3 01:18 | 只看该作者

楼主说的没有新意

楼主说的没有新意,网上有专门的**早就说过了,yewuyi说的倒是第一次听说.

使用特权

评论回复
30
emot| | 2009-4-3 13:00 | 只看该作者

听听

很想知道

使用特权

评论回复
31
martin| | 2009-4-3 13:31 | 只看该作者

理论上没有打不开的锁,也没有万能的钥匙

**的方法很多,有“侵入”性的,还有“非侵入”性的。
前面的讨论提到了一些**方法,其实还有很多。如非侵入性的,还有监测电源纹波、读操作组合时序脉冲攻击、利用Flash擦除电子残留量等等,具体方法我知道的也够不详细,不过这些方法单片机厂商早已知道,所以采用新发布的MCU基本都不会被这些攻击**。但如果你在用几年前的老型号,就要多想想别的办法来保护自己了。另,yewuyi提到的程序空白处填满是必要的,FLash的MCU多烧录擦除几次之后再烧程序,烧断编程引脚对国内的**手段十分有效(不过,可能到导致芯片损坏或性能下降)。
对于侵入式攻击,首先,打开芯片是一件低成本而且很容易的事情。第二,国内已经有很多二手的FIB设备。前面的讨论有提过这个设备,译成中文应是聚焦等离子束分析设备,原来都是半导体厂商用于芯片设计和坏片分析修改用的,可以说这个设备几乎是万能的,它可以象改PCB板一样修改芯片线路。随着国际上半导体工艺的进步,一些过时的FIB设备被淘汰,然后从二手市场进入国内。这些设备大多是0.4微米以上的。所以,如果你还在用0.7或0.5微米工艺的MCU,祈祷吧,或者想写别的保护办法。如果你已经用了最新的0.35或0.25微米工艺的MCU,基本上,小**商是没有办法的,除非芯片有漏洞。
魔高一尺,道高一丈。**者有各种神通,MCU厂商也在不断改进。其实用FIB设备大多是攻击熔丝(其实也有用激光、电子束、紫外线等非侵入攻击熔丝的),MCU厂商对于熔丝也做了越来越多的改进。例如前面提到的熔丝深埋、后来发展到分散多熔丝,金属层覆盖、最近比较多采用RAM熔丝(芯片上电时自动从程序空间用户定义的位置读控制字复制到RAM熔丝,这样攻击熔丝将无从下手)。还是要提醒各位,只有最新发布的MCU才会采用最新的代码保护技术,如果你还在用老的芯片,自求多福或者想别的办法。

说一点点对抗**的想法:
1)磨字,Remark,陈进老师做的事情在对抗解密上,简单又有效
2)用最新发布的新工艺兼容芯片
3)结合单片机的内部EEPROM、内部复位、内部振荡,你有可能设计出”非法条件”下程序或数据自毁
4)外加芯片(EEPROM或MCU),相互认证
5)烧断编程引脚。即使用FIB,**者也是用编程器从编程口读出的程序。不过烧毁引脚可能会引起芯片损坏或性能下降。给别人提供样品时推荐用这种方法。


使用特权

评论回复
32
McuPlayer|  楼主 | 2009-4-3 15:51 | 只看该作者

martin也忍不住参与这个话题了

先开盖FIB然后读出,深圳超过半数的**是这么做的。
成本太低了,一般的0.35制程的MCU把保护FIB掉只要几百块就有人做。
现在FIB**主要是针对0.5和0.35制程的片子,0.18制程的FIB收费就成倍的增长了。

使用特权

评论回复
33
mcuisp| | 2009-4-3 22:50 | 只看该作者

呵呵,31楼大曝料呀!赞一个。

各种MCU是哪种制程,怎么判断呀?
STM32F是不是0.13um的?

使用特权

评论回复
34
xieyuanbin| | 2009-4-5 10:07 | 只看该作者

MARTIN爆料果然有分量

我曾经做过样品是限次版的,不过要EEPROM或自编程支持.也被人**过几个,深受其害.
成本上面考量,外加芯片效果不大,比较有效的,就是vwwj说的办法,但程序比较麻烦.

使用特权

评论回复
35
yewuyi| | 2009-4-5 12:45 | 只看该作者

大家继续爆料讲讲有那些烧IO口的方法

使用特权

评论回复
36
McuPlayer|  楼主 | 2009-4-5 23:24 | 只看该作者

烧短IO可以大幅提高**成本

为什么说“烧短IO可以大幅提高破解成本”?

破解的法子很多,比如脉冲攻击、电子照相..................
但应用最多的是开盖 + FIB + 读出,注:绝大多数读出用的是IC厂家自己的读取工具。

烧IO实际上是破解CMOS的输出的PMOS和NMOS两个管子。
因为只烧一个,破解者可以用上拉和下拉的方式低成本的补上。

烧断了读出IO脚,破解者要进行IO的重建,那破解成本已经上了一个数量级。
比如,一些PIC芯片的IO口buffer重建,有人只要几千块钱就给做。


烧IO还具有“杀敌一千,自损九百”的效果,不建议采用。

使用特权

评论回复
37
常来21ic| | 2009-4-6 14:28 | 只看该作者

好话题 进来听讲座!

使用特权

评论回复
38
yewuyi| | 2009-4-6 15:14 | 只看该作者

请行家继续讲讲如何烧IO口。。。

呵呵,只要保住样品不被CRACK就可以,所以即使报废几片也是值得的。。。

使用特权

评论回复
39
McuPlayer|  楼主 | 2009-4-6 20:09 | 只看该作者

【转】通过烧断管脚来实现加密的方法

电压型烧断:
        工具:使用15V电源串47~470欧小电阻(不能太小),并联一路串二极管保护的发光管,发光管限流后接Vcc或Gnd(极性不同),接一探针。

        再使用-15V电源,电源的地接IC的Vcc,至发光管亮,注意极性为负极性!

        目的是击穿Pin的Pmos管(即上拉管);再用5V电源,直接加在待烧Pin上,再次把已短路的Pmos,烧开路。

        使用+15V电源,把探针点在待烧管脚至发光管亮,注意不能超过3秒,否则IC会损坏。发光管亮说明Pin的输出Nmos(即下拉管)击穿;再用5V电源烧开路。

        就OK啦,这个Pin将永远失效了!!
        
        过程:电压烧坏Pmos—电流烧坏Pmos—电压烧坏Nmos—电流烧坏Nmos
        如此烧断后,解密者就很难判断那个口被烧断了。
        说明:EA是读入脚(对MCU来说),而烧Pin的原理是烧坏Pin的输出推挽管,如果想烧坏Pin的输入则要冒IC被烧坏的风险!
所以不能选只读的脚来烧,一定要烧编程时回读数据的IO口,最好烧断两个。
        建议:根据以上原理,自己用MCU做一个自动烧断器,烧断就会非常可靠!
        解密者一般是利用我们烧Pin的漏洞,钻空子才能解密的。如只执行了上述烧Pin的某一步就留下了漏洞。那是不是完全烧坏Pin以后就不能解密了呢,也不是!但要想解密,完全烧坏两Pin的费用,可能要¥nW,几千就搞不定了,还要找到真正的邪派高手(开发者是正派)。

        并行和串行的分别 

        并行指MCU使用多数据线编程,一次打入数据为四位或8位不等,如AT89系列,Holtek等。

        串行指MCU使用1~2条数据线,一条时钟线编程,也有使用SPI、SIO接口的,都属于串行编程MCU,如Samsung。

        也有并行、串行兼容的,如AVR。

        SuperPro L+属于初级烧断,如果没记错,大概只烧短路了Nmos管,通过上面的贴子,你应该理解就算把Nmos完全烧坏也没什么用的。好的烧断器只有自己做,做个中级的足已。

        烧Pin的方法,针对的是CMOS 

        不管是OTP还是MTP,完全烧断可回读数据的Pin,加密效果不完全相同。对于并行编程的MCU这是中级的烧断方法。对于串行编程的MCU烧断DAT Pin的输出就足够高级了。
        更高级的烧断是烧坏编程时钟或片选的输入逻辑,不过操作不当对芯片有相当危险。

        当并行的时钟输入逻辑或串行的DAT输出被烧坏后,解密者无法判断是否解密成功,就不敢开芯片,就会知难而退了。
        对于中级烧断,在读保护被打开后,就可以找到被烧断的Pin,因为该位数据全部是高电平,使用强水打开芯片,再使用一种昴贵的设备制造一个Bond位,重新邦定就可解密。而这种设备大陆是很难租用到的,一般都要到台湾做,租用以¥nK/小时来计算的,所以最好烧断2Pin以上,给解密者制造费用。
        一般的解密者遇到这种情况,只有苦笑的份。
        如果没有完全烧断Pin那是低级烧断,则邪派的一般高手就轻易可以解密,所以一定要完全烧断! 

使用特权

评论回复
40
谈的元| | 2009-4-6 21:32 | 只看该作者

顶起啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则