介绍一种便宜,易用的MCU加密方法
这种方法的成本在 0.4USD 左右,破解成本估计要在 5KUSD 以上具体方法是
MCU读EEPROM中的密码,把读回来的密码与MCU中的数据做比对。如果一致则通过,不一致则做别的什么。
以上的原理之所以行不通,原因在于EEPROM中的数据很容易被读出来,盗版者很容易得到密码,然后复制一个一样的就行了,当然MCU也可以100%复制。
或者说复制一张内容100%相同的EEPROM是破解的前提。
但是如果EEPROM不是一般的EEPROM,它用编程器读不出来,用物理破解法也无法看到芯片的内容。那么理论上就无法复制一张内容100%相同的EEPROM。
这里推荐一种EEPROM
ATMEL的 AT88SC 系列
价格3元左右
无论是软、硬破解的成本都很高
IIC接口
用户事先在EEPROM中写好一个密码,比如“中华人民共和国万岁”,在MCU中也是如此。
在读这个EEPROM时MCU必须先发一个读取密码,比如“世界人民大团结万岁”
EEPROM内部进行比对,当2个“万岁”一致时,才能正常通过MCU的密码检测,从而实现加密过程。
flow chart
MCU read ---> EEPROM code
MCU <----returnEEPROM code
if match than pass
if not match than do something else
这种方法的优点是
1,便宜
2,量产中MCU中的code 100%相同,便于机械化编程
3,量产中AT88SC中的code 100%相同,便于机械化编程
分析破解的可以性
1,破解AT88SC中的数据,然后复制100%一样的。这个芯片不像AVR,破解的成本极高。
2,反汇编MCU中的程序,然后跟踪地址,分析出这2个“万岁”,需要一定的技术水平,但是如果我们在软件上想点办法,那就极难破解了。
3,分析IIC总线上的波形,然后推算出2个“万岁”,再复制到新的AT88SC中。这个方法好像还比较可行,但是可以在IIC协议上加密,这样的话破解成本就高多了。
目前像AT88SC这种能加密的EEPROM很多,基本在5元以下。 关注.请大侠研究一下. 谢谢分享! 顶一下,楼主关注加密的事情很热心,看来也是深受其害的一部分之一了。 顶一下 我觉得用处不大,mcu中的代码都读出来了,程序改一下就可以跳过eeprom中的密码,这样连eeprom的成本都省了:)。有很多东西不是破解能解决的,微软这么多盗版,他还是活的好好的。 支持一下.. 不错,不过那个加密芯片的程序不好写呀 就像现在的软件加密狗,厂家宣称这个东东多么厉害。但是实际问题是很多应用软件的编程人员并没有用好这个加密狗。最简单的,访问狗读个密码,对了就跑,不对就提示你付款。这样子你跳过去就好了,根本需要了解狗里面的数据什么,加密狗也就成了摆设。 我会试着写一下程序,如果成功了。会放到这里与大家分享。
AT88SC功能很多,对MCU加密只是其功能的一部分。
to:【5楼】 plank
“程序改一下就可以跳过eeprom中的密码,这样连eeprom的成本都省了”
请问你这样搞一下成本是多少?或者说,如果有人找你帮他搞一下,你收他多少钱?前提是AVR的芯片,里面可能有一些软件的防盗版技术。 Mark 加密很重要 在两边放一张密码表. 读取的时候只发送索引号, 每次的索引号不一样..这样分析I2C的难度加大... 还是那句话,有很多东西不是破解(加密)能解决的。
不过还是支持你搞一个这样的防盗系统,祝你成功。 AT88SC系列是CryptoMemory,加密性能非常好,有2种工作模式:同步与异步。
我现在用的是Synchronous Mode for Embedded Applications,采用同步模式。(此模式下需要注意的是,在启动i2c start信号前,scl一定要首先发送5个脉冲来启动通信,否则发送的数据和命令不会被芯片正确接收。这一点与普通i2c器件有所不同,一定要得到重视.)
如下图所示:
http://cache.amobbs.com/bbs_upload782111/files_15/ourdev_451973.jpg
AT88SCxx_Timing (原文件名:Synchronous Mode for Embedded Applications.jpg)
其中芯片内部分为2大区域,(配置区:Configuration Memory)与(用户区:User Memory)。
全新的AT88SC系列芯片跟正常的EEPROM一样使用(工作于Standard/Password Mode),采用IIC协议,只有命令稍微有点不同。
可以通过配置Configuration Memory的(AR:Access Registers)和(PR:Password/Key Registers)寄存器使芯片工作于一下工作模式:
1:Standard/Password Mode
2:Authentication Mode
3:Encryption Mode
芯片内部功能丰富,(例如:MTZ、DCR、Cryptograms (C0 – C3)、Session Keys (S0 – S3)、Secret Seeds (G0-G3)、Password Sets、Secure Code、Password Attempts Counters (PAC)、Authentication Attempts Counters (AAC)、Security Fuses...)在此不在详细说明了,具体可参考:(ourdev_451971.pdf(文件大小:1.38M) (原文件名:CryptoMemory Specification(AT88SC).pdf)
)
如果要进行深层次的应用,就要跟Atmel公司签订NDA协议。 如果能监控IIC通讯,那用MCU模拟IIC返回那一串数据那还是没多大作用. 【5楼】 plank
此言差矣!微软破解多,这只是在发展中国家,特别是在中国。但是在欧美等国,那就少了。微软是国际大公司,在欧美地区的销售就可以保证生存。而中国的很多企业还不能离开中国本土的市场,一旦失去中国本土的市场,那就没法生存了。 ls几位说没用的都很局限!按照avr mcu的定位来说是绝对有用的!!!
avr mega在国内基本都是mega8出货量最大, mega8就可以看到 项目的复杂程度了。
现在加了这个加密的eeprom,破解最起码 5w以上,所以可以很大程度的保护现在的知识产权了!
ls几位说什么 iic可以监听,等等。都是对的,但是增加了破解成本。有几个盗版者吃的消这种花费?? 还不如重新开发一个!
所以起到了很大程度的保护措施! 监视IIC通讯,用MCU模拟IIC返回那一串数据是针对这种加密一个比较容易的方法
因为监视I2C实在是容易得很的事情~你的通讯内容有限,等待多足够的时间自然能收集到足够破解数据,配合破解AVR的HEX文件,Debug跟踪一下,搞定了
最好的加密应该是ESA或者RSA,只是目前未见有方案,使用此方案每次通讯的内容可以完全随机,MCU验证即可,无法使用监视通讯的方法破解 AT88SC系列芯片若进入Encryption Mode模式,总线上数据是以密文来传输,旁路截取到的数据每次都是不同的。在现在这个年代,是暂时无法跟踪与破解的!
现在我也在看NDA协议,想在Encryption Mode 模式下读取User Zone读取到数据,虽然已经有算法,但是看了一个星期还不是很懂。 用一个单片机来伪装EEPROM
绝大部分时候密钥必须正确时主芯片才能工作,而且密钥有多组,
但特定时候(满足某几组密钥查询顺序后),必须满足某种特定“错误”,否则认为是被盗版....
不定期检测这种“错误”,
可能半个月查一次,也可能2个月查一次,(别忘了多确认下这个“错误”,以防干扰,自己的产品也完蛋)
确定后,就不定期某些关键功能失灵...有时又恢复正常...
这样我觉得盗版者应该会很头疼吧...
伪EEPROM中还要放些关键数据,对方想改主芯片直接去掉EEPROM也不行,
除非分析明白了大改,有那功夫和水平,估计重写一个了... 每次都加密?你的MCU部分肯定要加密/解密吧??用库函数做吧?
问题是MCU的HEX,我已经获得,例如AVR的,弄个MK2很容易就Debug到你的IO操作,跳过判断即可
破解一样容易,Windows软件的破解,以前做的多了,对于简单的MCU,比起Windows系统,差太远了
复杂的ARM程序或许还有点难度,AVR这类,不会复杂到哪里去的,因为Flash就那么大了...
当然如果你的IO总线和其它器件共用,那么破解会复杂一点的 贴个做单片机解密生意的人的网站。大家也可以研究一下它们,选个他们解密成本高的方法。
刚才漏了链接 http://www.husoon.com/mcujm/ffdc.ASP 同意楼上,要有“潜伏期”,盗版者会很头疼。 to【20楼】 lysoft
MCU的程序的复杂程度当然比PC差远了,可是对付PC程序解密的工具很多,也很强大。MCU的破解工具就少多了,很大程度上要靠人工的工作的,国内能有这种水平的人能有多少?所以人工的成本是很高的,也就是破解成本高了。另外除了AT88SC之外,还有很多secure EEprom呢,破解人员还要逐一去了解这些IC,那成本就更高了。
还有,11楼的方法很好,进一步提高破解成本了。
另外,AT88SC也支持在IIC总线上,进行密文传输,那么监控IIC总线就没有用了。
看了【21楼】 plank 的链接。我发现他们用的方法基本都是机械化的,即不需要什么人工的编程的知识就能完成。
而我介绍的这种方法,想破解,就必须既要懂硬件,又要懂编程的人介入,也就是说在机械化的成本之上再加上人工成本,那么就贵多了。 能获得Hex下,其它就好办
I2C通讯加密?你的MCU要发送加密,接收解密吧?
我说的前提是已经获得HEX下,难道还不能找到入手点
PS,偶说的是理论,目前未经证实,欢迎讨论
在线Debug目标板,发现I2C通讯时中断,跟踪上下文,找到破解点,此方法如何? LS(25L)才笨,芯片型号未知的话无法破解...破解第一步就是确定芯片型号 mark 支持.. at88到处都有破解的,搜一下就知道了 记号先 还没加过密呢 mark
以后可能有需要 不错的方法,之前也考虑这类IC来加密,有发帖了解,小俊解释了蛮清楚,只可惜网站攻击,找不到了。
I2C通讯加密,这个就不靠扑了,逻辑分析很容易抓出来。 at88密码的校验是用随机数据,通讯分析是不可能的
关注!! 关注at88的破解问题 mark 增加了破解成本,就=提高了自己的保护门槛 没想到这个芯片真的能破解(只需要1.5W,还包含了ATMEGA128的破解)汗.../emotion/em014.gif./emotion/em014.gif 刚才打电话问了一个能解ATSC88的人,它说,如果单独给他AT88SC的芯片,那么多少钱也解不了。
必须给他能正常工作的板子,他才能解,要1.5万元,前提是在开机有MCU与AT88SC通讯的。看来他是监控IIC总线。
但是如果通讯时间不定,那么他说就麻烦多了。所以,只要我们在软件上花些功夫迷惑盗版者,那么盗版的成本就会大幅提高。 支持楼主,在产品中考虑加密手段的衡量标准是破解者破解的代价大于等于他所获得的利益。理论上,没有一种可行的加密方式不可破解。
最终极的破解大法:做出功能一样的硬件,彻底摸通HEX文件,将所有加密或者迷惑的代码都去掉,就解密成功了!但是这样的话,比自己开发这样一个产品的代价高还是低呢?产品加密者的目的是否已经达到呢? 呵呵,楼主和我问的公司应该是一家的 目前唯一公认监测通讯不可解密的算法只有ECC和RSA,业界行业标准
曾有移植此类算法的想法,但这类算法太复杂,资源占用也厉害,就暂时搁置之
AT88毫无疑问不会是这类算法,芯片价钱就摆在那里,要是支持ECC和RSA的,价格不可能如此便宜;还得有调用库,嵌入MCU的
研究这个库即可发现破解方法
MCU唯一可靠的方法是:芯片级物理保护,一旦物理破解,剩下的工作已经不会多的了
毕竟MCU不是X86此类复杂系统,没有诸如加壳,特权级保护,MMU,动态代码,多线程执行这类保护
破解和加密是很复杂的事情,懒的再说了,想研究就看看"看雪论坛"吧
了解得多才会知道得多 期待楼主成功应用 我始终还是觉得 RSA才是牛B的加密。不过楼主的办法不错,目标就是提高破解成本,这就足够了,呵呵~~~ AVR的代码是静态的,反汇编后相对要简单一些。如果是能够将代码LOAD到RAM中运行的MCU,那就可以玩的很复杂了,要破解在RAM中动态执行的代码比较难的。 多校验几次呢...比如一上电的时候校验一次.运行到某些状态的时候再校验.这样程序中如果有10个地方校验的话,破解难度是不是会增加很多..最重要的这10次校验的内容不同.而且时间也不是固定的. mark mark 慢慢研究 利用EEPROM加密是最好的办法,IIC分析也无可奈何,关键看你程序怎么写,破解者他也是人,机器终归是机器,东西拿出来他还是要靠人脑来分析。想办法把他搞抓狂,搞崩溃,别把他搞死就行。呵呵~~ 关注 又找到一种东东,ISL9206 & ISL9206A SOT-23 封装, 1-wire通讯
国内成交价在4RMB左右。
用法与AT88SC类似的,区别在于
1,只能存密码等东西,不能存大量的数据
2,没有AT88SC加密那么好,不是专用的secure ASIC, (但是要解此芯片到成本可能更贵,因为用的人太少了)
优点在于
这个芯片,你把字擦掉,盗版者几乎想不到你用的是什么IC。也就是想破解都无从下手。
我只是提一个思路,类似的锂电池加密的芯片太多了,盗版者不会用穷举法搞清楚你用的是什么IC,因为盗版者也不想过劳死。 zan赞一个,LZ好Cool
最好做一个专用的加密库 一个新的破解思路,基于我破解各种PC应用软件的方法
AT88SC再怎么难破解,我不从这边下手。单片机总是要比较EEPROM里返回的数据吧,那单片要对比的数据是不是写在代码里的,AVR的破解好分析吧,从这个代码下手就容易了,AT88SC一点都没用了 据我个人对AT88SC的理解,单片机方面破解应该是比较低成本的了(在AT88SC开启密钥功能时).
呵呵~~~~~~~~~~~:) 有这工夫,多用点在设计上。先把自己的设计做好。 有这工夫,多用点在设计上。先把自己的设计做好。 有这工夫,多用点在设计上。先把自己的设计做好。 哄入门者罢了, AT88SC 只是个被动器件, 用个pin少的 mcu 仿真的话, 其成本比你还低! to:【54楼】 yjpvaps
你确实做过通过反汇编跟踪MCU的HEX的方法破解MCU程序的吗?如果做过,请告诉我成本是多少?
to:【59楼】 airwill
没看懂你说的是什么意思,你是说MCU的价格不到3 RMB吗? 1RMB+的8PIN芯片MCU其实挺多的... 有AT88SC的中文资料或简单说明么,可否共享,谢谢! 学习 学习一下,好方法 为什么密码7写不进去呢???? 关注中 用三个便宜的台湾鸡屎封装的芯片挂总线上承担一部分运算功能。破解的人绝对头大。 u 有弄明白的么?我用mega128读写at88sc0104,对用户区可以读写,配置区只有MTZ能读写,别的地方都不行。
手册上说要先校验密码7,可是我的密码7无论如何都校验不过,基本上都是在发送命令的时候就挂了,看波形应该是最后一个字节没有应答位,不知道什么原因啊~~~~ 这个IC是个外部存储器,可以保存很多重要参数在里面,程序没有这些参数让它也运行,只是时不时的出点错,这样的加密很好的啊~~,你用什么办法跳过获取这些重要参数呢???楼上的~~~
像这种跳过去的做法,不用你破解,程序本身就可以跳过去,只是执行起来出错而已~~~ 关注! 关注 很好的思路,成本也不高!
针对现有的破解思路,可以这样应对:
1,这EEPROM的脚位和其它电路复用。
2,不要只加一个校验,可以把校验隐含在特定的操作中,这样即使有人拿到hex,并且注释掉开机一刻的校验,烧录开机正常,但只要执行特定的的操作,MUC自动锁死。 这个方法好啊,也不用为加密而经常升级mcu。支持 楼主:
我倒有个办法,值得一试:
将SO封装的芯片(比如28脚的单片机)重新封装,封入DIP 28的底座当中(当然管脚连线要和原来不同),注塑,然后焊到PCB上去,外面随便打印几个字符,比如Agilent EC2325,这个一般破解的人都会放弃的。。。
主要是要搞到DIP28的管脚和封装用的环氧树脂,这个比较费劲些,对于高附加值、产量少的器件,这个方法比较靠谱。
量大的直接DYE封装或者去流片,也是个办法。 我也有个办法,价格差不多,就是加个滚动码芯片HCS301,每次上电HCS301先发个码到单片机,正确后才工作。。。 To:【79楼】 daicp HSC301与AT88SC的最大区别是其数字通讯总线是明文传输的,盗版者可以用逻辑分析仪加以分析。而AT88SC是可以用密文传输,逻辑分析仪就没有用了。当然AT88SC也可以用明文传输。 老大,别人破解的时候不需要比对,只需要修改几条跳转语句就行了.......很容易破解的哦.....(我目前在帮别人破解,自己非常鄙视自己),可是没有办法,要生存啊!目前在破解一个 PIC18F4620的单片机,这个才是头大,AVR的最好破解,前段时间一个MEGA48的,我把他全部还原成了C语言,说句心理话,个人觉得,PIC18系列PIC24系列的破解很磨人,写程序的那个鸟人,HCS301+防拆开关+2个电池,别人把芯片拿去解密后给我一看,娘的,檫掉了N多的EEPROM数据,不过大部分已经被我还原了....还在进行中......这个牛人的程序反汇编后基本上各个模块都是交织在一起的,看了想死 To:【80楼】 daicp HSC301与AT88SC的最大区别是其数字通讯总线是明文传输的,盗版者可以用逻辑分析仪加以分析。而AT88SC是可以用密文传输,逻辑分析仪就没有用了。当然AT88SC也可以用明文传输。
===============================================================================================
我猜你对HCS301不是很了解,否则不会发表这样的评论,目前我基本上是HCS301的专家级人物了 TO:81
你破解都简单的程序吧~ 在AT88SC 放点参数 参加运算的 你不破解他 跳过就能解决? 搬板凳学习,书本上没有的知识 到了反编译这步所有加密都是纸老虎,可以先用被破解芯片的程序读出所有参数,再改程序直接使用这些参数就行了,没有解不了的,只是时间长短的差别罢了。 请LS的注意,我在LZ位就提到可以用反汇编的方法破解,这是毋庸置疑的。
但是请关注成本,AVR的东西,反汇编+代码分析+代码修改+售后服务。你要收人家多少钱。如果这笔费用高于RMB30K。从商业上角度上看就等于不能破解。 解密费用高于开发费用就可以说是加密成功了。如果高于2倍可以说是不能解密。不能解密是对想抄板的人来说的,费用太高不能拿去解密。 有没有人用过AT88SC啊?关于密文方面应该怎样搞? 请问坛子里有代理AT88SC的吗?怎么才能得到API? mark 很好~! mark AVR的东西,反汇编+代码分析+代码修改+售后服务。不过3000.
看反汇编不难,和看汇编的源程序一样,如果是C编译的更简单,基本能猜出对应的C语句
pc的解密也不是靠工具,基本也是人工分析 “反汇编不难,和看汇编的源程序一样”这个不认同,基本上差别很大,不然那些老板谁会反对用汇编?!
3000也太便宜了吧! mark good 标。。。。个记 flow chart
MCU read ---> EEPROM code
MCU <----returnEEPROM code
if match than pass
if not match than do something else
不可取
破解办法
flow chart
goto next
MCU read ---> EEPROM code
MCU <----returnEEPROM code
if
next:
match than pass
if
not match than do something else
这种加密,都是比较低级的办法。 楼主说的EEPROM 5毛8 一个我刚问了销售 价格来说不便宜 也不贵
我有一个想法既然要加外布芯片 那么何直接加一个单片机 几毛钱的骗子我都在用 外面加了个MCU 我想大家发挥的空间就大了吧
模拟个I2C从机放在那 想怎么玩就怎么玩 片子 不是 骗子 更正 用监视IIC通讯的方法,而后虚拟是不是可以破解? 多此一举 mark 【94楼】 qianhng
看来你是不会汇编的
页:
[1]
2