文档库 最新最全的文档下载
当前位置:文档库 › 单片机破解的常用方法及应对策略

单片机破解的常用方法及应对策略

单片机破解的常用方法及应对策略
单片机破解的常用方法及应对策略

单片机破解的常用方法及应对策略

1引言

单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。

2单片机攻击技术

目前,攻击单片机主要有四种技术,分别是:

(1)软件攻击

该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMELAT89C系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据

的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。

(2)电子探测攻击

该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。

(3)过错产生技术

该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。

(4)探针技术

该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。

为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。所有的微探针技术都属于侵入型攻击。另外三种方法属于非侵入型攻击,被攻击的单片机不会被物理损

坏。在某些场合非侵入型攻击是特别危险的,这是因为非侵入型攻击所需设备通常可以自制和升级,因此非常廉价。

大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。因此,对单片机的攻击往往从侵入型的反向工程开始,积累的经验有助于开发更加廉价和快速的非侵入型攻击技术。

3侵入型攻击的一般过程

侵入型攻击的第一步是揭去芯片封装。有两种方法可以达到这一目的:第一种是完全溶解掉芯片封装,暴露金属连线。第二种是只移掉硅核上面的塑料封装。第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便。

芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接。

接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,然后用清水清洗以除去盐分并干燥。没有超声池,一般就跳过这一步。这种情况下,芯片表面会有点脏,但是不太影响紫外光对芯片的操作效果。

最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。

对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。

还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线,就能禁止整个保护功能。由于某种原因,这根线离其它的线非常远,所以使用激光切割机完全可以切断这根线而不影响临近线。这样,使用简单的编程器就能直接读出程序存储器的内容。

虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单

片机的内部程序变得比较容易。

4应对单片机破解的几点建议

任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。所以,在用单片机做加密认证或设计系统时,应尽量加大攻击者的攻击成本和所耗费的时间。这是系统设计者应该始终牢记的基本原则。除此之外,还应注意以下几点:

(1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片。

(2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。

(3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度。

(4)选择采用新工艺、新结构、上市时间较短的单片机,如ATMELAVR系列单片机等。

(5)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击。

(6)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。

(7)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真。

当然,要想从根本上防止单片机被解密,程序被盗版等侵权行为发生,只能依靠法律手段来保障。

STM芯片烧写和加密解密

STM32芯片烧写和加密、解密 yurenchen 2013/3/4 连接 (还可以设置JLink script) Target -> Connect 烧写 打开要烧写的文件,如keil编译生成的hex文件, 点烧写即可.

加密 加密后将不可通过JTAG读写flash, 需要解密才可以.

解密 解密后flash会被全部清空成0xFF 加密解密操作同函数 FLASH_ReadOutProtection(ENABLE) FLASH_ReadOutProtection(DISABLE) 只是通过这个函数需要代码执行一次后才能完成加密. 操作: OB->RDP ENABLE: OB->RDP = 0x00; DISABLE: OB->RDP = RDP_Key; //0x00A5 OB地址0x1FFFF800 OB 结构 typedef struct { __IO uint16_t RDP; __IO uint16_t USER; __IO uint16_t Data0; __IO uint16_t Data1; __IO uint16_t WRP0; __IO uint16_t WRP1; __IO uint16_t WRP2; __IO uint16_t WRP3; } OB_TypeDef;

(摘自refrence.pdf)

(摘自programingManual.pdf) flash 加密的实质: 标记 Information Block 段的Option Bytes某字节, 通过JTAG接口访问Flash时先检查此字节的标志. 通常的flash 读写都不修改 Information Block.

STC单片机唯一ID保护的例子及思路

STC单片机唯一ID保护的例子及思路(摘自STC-ISP V6.XX【重要说明】部分) 关于ID号在大批量生产中的应用方法(较多客户的用法)(转载) 先烧一个程序进去(选择下次下载用户程序时不擦除用户EEPROM区),

读程序区的ID号(STC15系列是程序区的最后7个字 节),经用户自己的复杂的加密算法对程序区的ID号加密运算后生成一个新的数---用户自加密ID号,写入STC15系列用户 的EEPROM区的EEPROM。再烧一个最终出厂的程序进去(选择下次下载用户程序时将用户EEPROM区一并擦除),在用户程序 区多处读程序区的ID号和用户自加密ID号比较(经用户自己的复杂的解密算法解密后),如不对应,则6个月后随机异常, 或200次开机后随机异常。最终出厂的程序不含加密算法。 另外,在程序区的多个地方判断用户自己的程序是否被修改,如被修改,则6个月后随机异常,或200次开机后随机异常, 将不用的用户程序区用所谓的有效程序全部填满。 《应用笔记》 单片机加密保护的几种方式: 1、法律保护 由完善的法律加强对盗版的打击。在单片机程序里添加自己的版权、LOGO标记等,作为法庭上的证据(当然要加密保存,并反跟踪,程序运行中要校验是否被修改,如是则作相应的处理)。 2、技术保护。 其实理论上所有的单片机加密都会被破解,只是成本的问题(含时间成本、金钱成本等)。只要做到解密的成本足够大,让破解者觉得无利可

图即算成功! 通常是加密的容易而破解难。现代芯片的加密主要有工艺上缩小线宽、将保密位深埋、读写协议保密、读取敏感区域时自动重启等等方法,让破解者不能取得内部BIN执行代码。 假如一个系统的成本为:开发+测试+投产只需5万元,而破解得到BIN 文件却要10万元,这时哪谁还去做破解的傻事?? 而且如果开发者使用了关联单片机唯一ID的保护方式,哪怕破解者千辛万苦取得了BIN文件还不能直接使用,就可以大大增加了系统的保密性。 加密者使用唯一ID的加密就像PC软件使用USB加密狗加密方式和银行网银的证书加密方式,都是通过唯一的认证工具,让系统识别合法用户。 BIN文件需要反汇编来修改,即使在PC如此先进的跟踪环境下,破解PC软件的USB加密狗的办法都很困难,更况且是在单片机的调试环境?! 加密者可使用多重巧妙的加密(包括动态加密、代码CRC32校验、动态陷阱和随机报错等等),破坏反汇编器的跟踪,这时需要破解者人工进行层层跟踪,这个可是个浩大的工程, 人力金钱成本和时间成本也是很大的,往往比重新开发还高,得不偿失啊。这绝不是学校的例题一样:将“判断指令JNZ改为JZ”这么简单!至于网上有人说利用单片机外部器件(例如:DS18B20)的唯一ID用来加

十个常用破解网络密码的方法

十个常用破解网络密码的方法 个人网络密码安全是整个网络安全的一个重要环节,如果个人密码遭到黑客破解,将引起非常严重的后果,例如网络银行的存款被转账盗用,网络游戏内的装备或者财产被盗,QQ币被盗用等等,增强网民的网络安全意识是网络普及进程的一个重要环节,因此,在网民采取安全措施保护自己的网络密码之前,有必要了解一下流行的网络密码的破解方法,方能对症下药,以下是我总结的十个主要的网络密码破解方法。 1、暴力穷举 密码破解技术中最基本的就是暴力破解,也叫密码穷举。如果黑客事先知道了账户号码,如邮件帐号、QQ用户帐号、网上银行账号等,而用户的密码又设置的十分简单,比如用简单的数字组合,黑客使用暴力破解工具很快就可以破解出密码来。因此用户要尽量将密码设置的复杂一些。 2、击键记录 如果用户密码较为复杂,那么就难以使用暴力穷举的方式破解,这时黑客往往通过给用户安装木马病毒,设计“击键记录”程序,记录和监听用户的击键操作,然后通过各种方式将记录下来的用户击键内容传送给黑客,这样,黑客通过分析用户击键信息即可破解出用户的密码。 3、屏幕记录 为了防止击键记录工具,产生了使用鼠标和图片录入密码的方式,这时黑客可以通过木马程序将用户屏幕截屏下来然后记录鼠标点击的位置,通过记录鼠标位置对比截屏的图片,从而破解这类方法的用户密码。 4、网络钓鱼 “网络钓鱼”攻击利用欺骗性的电子邮件和伪造的网站登陆站点来进行诈骗活动,受骗者往往会泄露自己的敏感信息(如用户名、口令、帐号、PIN码或信用卡详细信息),网络钓鱼主要通过发送电子邮件引诱用户登录假冒的网上银行、网上证券网站,骗取用户帐号密码实施盗窃。 5、Sniffer(嗅探器) 在局域网上,黑客要想迅速获得大量的账号(包括用户名和密码),最为有效的手段是使用Sniffer 程序。Sniffer,中文翻译为嗅探器,是一种威胁性极大的被动攻击工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式窃取网上的传送的数据包。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。任何直接通过HTTP、FTP、POP、SMTP、TELNET协议传输的数据包都会被Sniffer 程序监听。

STC单片机性能及其解密方法分类简介

STC单片机性能及其解密方法分类简介 时间:2011-07-21 16:55 作者:互联网来源:互联网 单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影。在此,小编针对STC单片机来整理了一些资料,总结STC单片机性能及其解密方法分类,希望能给大家学习STC单片机有一定的参考作用。 STC单片机 随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一次新的技术革命。STC公司推出了了STC89系列单片机,增加了大量的新功能,提高了51的性能,是MCS51家族中的佼佼者。文章主要介绍了该单片机种与MCS51的不同之处,并根据笔者的实践,提出了一些需要注意的地方。这里要向大家推荐的是新近由STC公司推出的高性价比的STC89系列单片机。 STC单片机-STC89系列单片机的性能 STC89系列单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。下表是STC89系列单片机资源一览表。 STC单片机-STC89系列单片机主要特性: 80C51核心处理器单元;3V/5V工作电压,操作频率0~33MHz(STC89LE516AD最高可达90MHz);5V工作电压,操作频率0~40MHz; 大容量内部数据RAM:1K字节RAM;64/32/16/8kB片内Flash程序存储器,具有在应用可编程(IAP) ,在系统可编程(ISP),可实现远程软件升级,无需编程器; 支持12时钟(默认)或6时钟模式;双DPTR数据指针;SPI(串行外围接口)和增强型UART ;PCA(可编程计数器阵列),具有PWM的捕获/比较功能;

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤w

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤 /*****************************************************************************/ *本人用此法成功解救了4块板子【窃喜!】,此说明是本人边操作边截图拼成的,有些是在别的说明上直接截图【有些图本人不会截取,就利用现成的了,不过那也是本人用豆和财富值换来的】,表达不清之处还望见谅,大家将就着看吧!如能有些许帮助,我心甚慰!!! ————武狂狼2014.4.23 /*****************************************************************************/ 编译软件:CW5.1版本,下载器:飞翔BDMV4.6 【1】,连接好单片机,准备下载程序,单击下载按钮出现以下界面 或 (图1.1) 图 1.1——4中所有弹出窗口均单击“取消”或红色“关闭”按钮依次进入下一界面

(图1.2) (图1.3)

(图1.4) ******************************************************************************* ******************************************************************************* 【2】单击出现如下图所示下拉列表,然后单击 (图2.1) 出现下图(图2.2)对话框,按下面说明操作 (图2.2)

Flash型单片机的加密与解密

Flash型单片机的加密与解密 厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性。考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的。 早期的单片机,代码是交给芯片制造商制成掩膜ROM。有两种加密的机制,一是彻底破坏读取代码的功能,无论是开发者还是使用者都永远无法读取其中的内容。从安全上来说,这种方式很彻底 ,但是已经无法检查ROM中的代码了。另一种方法是不公开读取方法,厂商仍可以读取代码。这种方式留有检查代码的可能性,但是并不能算是一种真正的“加密”,被破解的可能性是存在的。 客观地讲,一方面希望加密很彻底,而另外一方面又希望留有检查代码的可能,这是相互矛盾 的要求。 自Flash技术得到广泛应用以来,各类单片机制造商纷纷采用了多种不同的芯片加密方法,对比掩膜ROM芯片来说,Flash ROM在线可编程特性使得芯片的加密和解密方式变得更加灵活和可靠。在Flash型单片机中,芯片的加密和解密工作都是通过对Flash ROM的编程来完成的,由于用户程序可以在线地改写ROM的内容,可以编写一套加密和解密的小程序,随用户程序下载到芯片中,通过运行该程序,在线修改Flash ROM的内容,对芯片进行加密和解密,使整个的加解密过程更为简单灵活。 Freescale公司的HCS12单片机采用的加解密思路有一定的典型性,我们对此作了一些研究,现以MC9S12DP256单片机为例,介绍Flash型单片机的加密解密方法。 BDM Freescale公司的很多单片机都借用一种被称为后台调试模式(Background Debug Mode,BDM)作为下载和调试程序的接口。 BDM是一种单线调试模式,芯片通过一个引脚与编程器进行通信。在HCS12系列单片机中,内部都置有标准的BDM调试模块。该模块的有三种作用: 1) 对内部存储器的读写。将用户程序下载到目标芯片中或是将存储器中的数据读出。 2) 对单片机工作方式和资源进行配置。部分涉及到单片机工作方式和资源配置的寄存器只能在特殊模式下由编程器发送BDM命令来修改。 3) 程序调试。利用BDM模块可以读写内存和CPU内部寄存器,调试程序。 在HCS12单片机未加密的状态下,使用BDM硬件命令可以将Flash ROM中的程序读出或将新的程序写入。BDM命令可以由独立的硬件系统来送出,我们一般称此类系统为BDM编程器。 BDM编程器的时序协议是公开的,任何人都可以根据协议设计硬件、编写程序,实现BDM编程器的功能。使用BDM接口,编程器可以很容易的访问到目标系统的存储器,这给程序调试和烧写带来了很大

OD破解常用方法

[分享] OD破解常用方法[复制链接] 一、概论 壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种 顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多! 二、常见脱壳方法 预备知识 1.PUSHAD (压栈)代表程序的入口点, 2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近 3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 方法一:单步跟踪法 1.用OD载入,点“不分析代码!” 2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4) 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选) 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现! 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。 Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP! 方法二:ESP定律法 ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) 1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) 2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车! 3.选中下断的地址,断点--->硬件访--->WORD断点。 4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。

单片机按键的解决方法

单片机按键的解决解决方案 1、单片机上的按键控制一般采用两种控制方法:中断和查询。中断必须借助中断引脚,而 查询按键可用任何IO端口。按键较少时,一个按键占用一个端口,而按键较多时,多采用矩阵形式(如:经常用4个端口作为输出,4个端口作为输入的4X4矩阵来获得16个按键);还可以用单片机的AD转换功能一个引脚接多个按键,根据电阻分压原理判断是哪个按键按下。 2、中断形式 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器. 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组 第0组:所有4bit用于指定响应优先级; 第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级; 第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级; 第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级; 第4组:所有4位用于指定抢占式优先级。 所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级。 有几点需要注意的是: 1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果; 2)抢占式优先级别相同的中断源之间没有嵌套关系; 3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。 GPIO外部中断: STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间智能使用一个,如:PA0,PB0,PC0,PD0,PE0,PF0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能使用了,在此情况下我们使用类似于PB1,PC2这种末端序号不同的外部中断源,每一组使用一个中断标志EXTI x.EXTI0~EXTI4这5个外部中断有着自己单独的中断响应函数。EXTI5~EXTI9共用一个中断响应函数,EXTI10~EXTI15共使用一个中断响应函数。 对于中断的控制,STM32有一个专用的管理机构NVIC.中断的使能,挂起,优先级,活动等等都是由NVIC在管理的。 编写IO口外部中断步骤及其注意事项:

CH559单片机的几种加密方式

芯片加密建议 1、概述 在该说明文档中会讲述目前(2015.12.30)正在使用或者已知的一些加解密技术作为开发者加密建议,其实我们只是想表述一种思想、方法和简单的建议,更多的还是开发者自己去完成,不然加密方式千篇一律,其意义也不是很大;另外由于加解密技术会随着时间的推移而更加的多样化,所以列举的加解密方法会受实时影响,希望开发者能够理解。 首先要明确一个概念,采用更多的或更先进的加密手段,只能提高解密难度,但是不能绝对杜绝芯片被解密。随着芯片逆向技术的提高,做芯片解密研究的投入也在增加,总能找到办法解密芯片,没有绝对安全的加密手段。所以在做一个产品的时候,保密安全性是一个因素,但最为重要的还是产品的功能,所以不能因为加密而使设计提高了较大难度,从而影响了设备本身的功能。芯片加解密的最重要原则就是,尽量做到解密成本大于开发成本,这样解密也就没有价值和意义。 2、解密技术 这里讲解密技术不是为了普及解密方法,我们是要做到知己知彼,才能百战不殆,保住自己的劳动成果。以下会列举一些已知的解密方法,其实这些东西在网上或者专门做解密芯片的门户网站上也能有简单的说明,我们只要了解其使用方法,然后有针对性的做好加密工作。 单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。 目前,攻击单片机主要有四种技术,分别是: (1)、软件攻击 该技术通常使用处理器通信接口并利用协议、加密算法的安全漏洞来进行攻击。软件攻击者利用单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。 (2)、电子探测攻击 该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。 (3)、过错产生技术 该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。 (4)、探针技术 该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。 为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。所有的微探针技术都属于侵入型攻击。另外三种方法属于非侵入型攻击,被攻击的单片机不会被物理损坏。在某些场合非侵入型攻击是特别危险的,这是因为非侵入型攻击所需设备通常可以自制和升级,因此非常廉价。 大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。因此,对单片机的

单片机按键连接方法

单片机按键连接方法总结(五种按键扩展方案详细介绍) 单片机在各种领域运用相当广泛,而作为人机交流的按键设计也有很多种。不同的设计方法,有着不同的优缺点。而又由于单片机I/O资源有限,如何用最少的I/O口扩展更多的按键是我所研究的问题。接下来我给大家展示几种自己觉得比较好的按键扩展方案,大家可以在以后的单片机电路设计中灵活运用。 1)、第一种是最为常见的,也就是一个I/O口对应一个按钮开关。 这种方案是一对一的,一个I/O口对应一个按键。这里P00到P04,都外接了一个上拉电阻,在没有开关按下的时候,是高电平,一旦有按键按下,就被拉成低电平。这种方案优点是电路简单可靠,程序设计也很简单。缺点是占用I/O资源多。如果单片机资源够多,不紧缺,推荐使用这种方案。 2)、第二种方案也比较常见,但是比第一种的资源利用率要高,硬件电路也不复杂。 这是一种矩阵式键盘,用8个I/O控制了16个按钮开关,优点显而易见。当然这种电路的程序设计相对也还是很简单的。由P00到P03循环输出低电平,然后检测P04到P07的状态。比方说这里P00到P03口输出1000,然后检测P04到P07,如果P04为1则说明按下的键为s1,如果P05为1则说明按下的是s2等等。为了电路的可靠,也可以和第一种方案一样加上上拉电阻。 3)、第三种是我自己搞的一种方案,可以使用4个I/O控制8个按键,电路多了一些二极管,稍微复杂了一点。 这个电路的原理很简单,就是利用二极管的单向导电性。也是和上面的方案一样,程序需要采用轮训的方法。比方说,先置P00到P03都为低电平,然后把P00置为高电平,接着查询P02和P03的状态,如果P02为高则说明按下的是s5,若P03为高则说明按下的是s6,然后再让P00为低,P01为高,同样检测P02和P03的状态。接下来分别让P02和P03为高,其他为低,分别检测P00和P01的状态,然后再做判断。这种方案的程序其实也不难。 4)这是我在一本书上看到的,感觉设计的非常巧妙,同样它也用到了二极管,不过比我的上一种方案的I/O利用率更高,他用4个I/O口控制了12个按键。我相信你了解了之后也会惊奇的。 首先好好品味一下这个方案吧,想想怎么来识别按键呢!

芯片解密方法概述

芯片解密方法概述 芯片解密(IC解密),又称为单片机解密,就是通过一定的设备和方法,直接得到加密单片机中的烧写文件,可以自己复制烧写芯片或反汇编后自己参考研究。 目前芯片解密有两种方法,一种是以软件为主,称为非侵入型攻击,要借助一些软件,如类似编程器的自制设备,这种方法不破坏母片(解密后芯片处于不加密状态);还有一种是以硬件为主,辅助软件,称为侵入型攻击,这种方法需要剥开母片(开盖或叫开封,decapsulation),然后做电路修改(通常称FIB:focused ion beam),这种破坏芯片外形结构和芯片管芯线路只影响加密功能,不改变芯片本身功能。 单片机解密常用方法 单片机(MCU)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓单片机加密或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。 目前,单片机解密主要有四种技术,分别是: 一、软件攻击 该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMELAT89C51系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。 目前在其他加密方法的基础上,可以研究出一些设备,配合一定的软件,来做软件攻击。 近期国内出现了了一种51单片机解密设备,这种解密器主要针对SyncMos. Winbond,在生产工艺上的漏洞,利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FF FF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了。 二、电子探测攻击 该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。 目前RF编程器可以直接读出老的型号的加密MCU中的程序,就是采用这个原理。

单片机按键识别方法之一

单片机按键识别方法之一 1.实验任务 每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2.电路原理图 图4.8.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;

(2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4.程序设计方法 (1.其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说, 当我们按下一个按键 时,总希望某个命令只 执行一次,而在按键按 下的过程中,不要有干 扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。 因此在按键按下的时候,图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况 下,我们可以采用电容来滤除掉这些干扰信号,但实际上,会增加硬件成本及 硬件电路的体积,这是我们不希望,总得有个办法解决这个问题,因此我们可 以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候, 总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状 态。具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU 就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。 由于要求每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,因此从按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,显然释放的过程,就是使其恢复成高电平状态。

(完整版)单片机解密方法简单介绍(破解)

单片机解密方法简单介绍 下面是单片机解密的常用几种方法,我们做一下简单介绍: 1:软解密技术,就是通过软件找出单片机的设计缺陷,将内部OTP/falsh ROM 或eeprom代码读出,但这种方法并不是最理想的,因为他的研究时间太长。同一系列的单片机都不是颗颗一样。下面再教你如何破解51单片机。 2:探针技术,和FIB技术解密,是一个很流行的一种方法,但是要一定的成本。首先将单片机的C onfig.(配置文件)用烧写器保存起来,用在文件做出来后手工补回去之用。再用硝酸熔去掉封装,在显微镜下用微形探针试探。得出结果后在显微镜拍成图片用FIB连接或切割加工完成。也有不用FIB用探针就能用编程器将程序读出。 3:紫外线光技术,是一个非常流行的一种方法,也是最简单的一种时间快、像我们一样只要30至1 20分钟出文件、成本非常低样片成本就行。首先将单片机的Config.(配置文件)用烧写器保存起来,再用硝酸熔去掉封装,在显微镜下用不透光的物体盖住OTP/falsh ROM 或eeprom处,紫外线照在加密位上10到120分钟,加密位由0变为1就能用编程器将程序读出。(不过他有个缺陷,不是对每颗OT P/falsh都有效) 有了以上的了解解密手段,我们开始从最简的紫外光技术,对付它: EMC单片机用紫外光有那一些问题出现呢?:OTP ROM 的地址(Address:0080H to 008FH) or (Address:0280h to 028FH) 即:EMC的指令的第9位由0变为1。因为它的加密位在于第9位,所以会影响数据。说明一下指令格式:"0110 bbb rrrrrrr" 这条指令JBC 0x13,2最头痛,2是B,0X13是R。如果数据由0变为1后:"0111 bbb rrrrrrr"变成JBS 0x13,2头痛啊,见议在80H到8FH 和280H到28FH多用这条指令。或用"润飞RF-2148"烧录,将IC的 CheckSum变为0000让解密者不知道内部的CheckSum值是多少。因为EMC的烧器会将这个Che ckSum值加上去,即讲给解密者内部CheckSum值是多少。RF-2148烧录器不过有点慢。刚才讲的是普通级的153,156,447,451,458等,但是N级即工业级的加密位在0,1,2位:0000000000XXX,X XX是加密位,见议在80H到8FH和280H到28FH用RETL @0x?? 这条指令,他的格式为:11100 rrrrrrrr。硬件方面加密看下面。 CYPRESS单片机用紫外光有那一些问题出现呢?:常见型号有63001、63723、、、影响数据出现

AT89C51单片机解密

AT89C51单片机解密 AT89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 目前我们致芯科技已经可以对ATMEL单片机、SYNCMOS单片机、PHILIPS 单片机、WINBOND单片机、AVR系列单片机、Microchip单片机、EMC单片机、HOLTEK单片机、CYPRESS单片机、STC单片机、SST单片机、INTEL单片机、MDT 单片机、MXIC单片机以及GAL、部分CPLD进行破解解密,特别是2006.6月我们引进德国设备和技术,可以对部分motorola(摩托罗拉)单片机解密。在PIC、HOLTEK单片机解密、麦肯单片机解密、Microchip单片机和普通常见型号单片机解密上在国内具有价格上的优势。 本文采用单片机实现无线传输通信和实时报警功能,设计一套低成本通用型的病房呼叫系统。整个系统采用无线通信的方式,降低了复杂的布线、安装检修和拆卸的难度,并可监控多个病房且便于扩充升级。 病房呼叫系统作为一种基本医疗陪护设备已逐步得到普及并不断得到改进。传统的病房呼叫系统采用PC机联网监控和有线控制,虽然具备很强的专业服务功能和监护能力,但是其实现方法复杂,前期投资和后期维护的费用都很高。 系统方案设计 本设计采用从机和主机相分离的模式。从机安装于各个病房,主机安装于医务室或值班室。多个从机处于等待外部呼叫信号的状态,主机则时刻处于等待接收从机呼叫信息的状态,并且从机与主机之间采用无线 传输通信。当病人按动安装在床头的从机按键时,安装在护士站的主机收到信号后发出提示音,同时发光二极管亮,数码管显示呼叫病人的床位号和呼叫次数,医生或护士根据显示床位号进行治疗与服务。 该病房呼叫系统的硬件设计主要包括主机硬件设计和从机硬件设计两部分。主机硬件设计包含了射频芯片外围电路、显示部分、警报部分及AT89C51芯片的简单外围电路的设计。从机硬件设计则包含射频芯片外围电路、外部输入电路及AT89C51芯片的简单外围电路的设计。

AT89C系列单片机加解密原理

AT89C系列单片机加解密原理 AT89C系列单片机加解密原理 单片机解密简单就是擦除单片机片内的加密锁定位。由于 AT89C系列单片机擦除操作时序设计上的不合理。使在擦除片内程序之前首先擦除加密锁定位成为可能。AT89C系列单片机擦除操作的时序为:擦除开始---->擦除操作硬件初始化(10微秒)---->擦除加密锁定位(50----200微秒)--->擦除片内程序存储器内的数据(10毫秒)----->擦除结束。如果用程序监控擦除过程,一旦加密锁定位被擦除就终止擦除操作,停止进一步擦除片内程序存储器,加过密的单片机就变成没加密的单片机了。片内程序可通过总线被读出。对于AT89C系列单片机有两种不可破解的加密方法。 一、永久性地破坏单片机的加密位的加密方法。简称OTP加密模式。 二、永久性地破坏单片机的数据总线的加密方法。简称烧总线加密模式。 OTP加密模式原理 这种编程加密算法烧坏加密锁定位(把芯片内的硅片击穿),面不破坏其它部分,不占用单片机任何资源。加密锁定位被烧坏后不再具有擦除特性,89C51/52/55有3个加密位进一步增加了加密的可靠性。一旦用OTP模式加密后,单片机片内的加密位和程序

存储器内的数据就不能被再次擦除,89C51/52/55单片机就好象变成了一次性编程的OTP型单片机一样。如果用户程序长度大于 89C51单片机片内存储器的容量,也可使用OPT模式做加密,具体方法如下: 1、按常规扩展一片大容量程序存储器,如27C512(64K)。 2、把关键的程序部分安排在程序的前4K中。 3、把整个程序写入27C512,再把27C512的前4K填充为0。 4、把程序的前4K固化到AT89C51中,用OPT模式做加密。 5、把单片机的EA脚接高电平。 这样程序的前4K在单片机内部运行,后60K在片外运行。盗版者无法读出程序的前4K程序,即使知道后60K也无济于事。炼总线加密模式原理 因为单片机片内的程序代码最终都要通过数据总线读出,如果指导单片机的数据总线的其中一条线永久性地破坏,解密者即使擦除了加密位,也无法读出片内的程序的正确代码。89C1051/2051的数据总线为P1口烧总线模式烧坏89C2051的P1.0端口,原程序代码为02H、01H、00H。读出的数据则为03H,01H,00H。其中最低位始终为1,读出的程序代码显然为错码。这种加密模式

ATMEL89C系列51单片机加密原理

ATMEL89C系列51单片机加密原理 ATMEL89C系列是ATMEL51单片机典型的低功耗,高性能CMOS8位微控制器,也是OTPMCU,采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统,芯片内集成了RAM和Flash存储单元,功能强大的ATMELAT89C 系列微处理器可提供许多高性价比的应用场合。 致芯科技最具实力的芯片解密、IC解密、单片机解密等解密服务机构,致芯科技拥有多年的解密服务经验和超高水平的解密技术,一直从客户利益出发,为每位客户提供最科学最合理最低成本的解密方案与解密服务,深受客户的信赖与喜爱。 51类单片机在完成三级加密之后采用烧坏加密锁定位,不破坏其它部分,不占用单片机任何资源。加密锁定位被烧坏后不再具有擦除特性。一旦用OTP 模式加密后,单片机片内的加密位和程序存储器内的数据就不能被再次擦除。 ATMEL89C系列51单片机特点: 1.内部含Flash存储器 因此在系统的开发过程中可以十分容易进行程序的修改,这就大大缩短了系统的开发周期。同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不影响到信息的保存。 2.和80C51插座兼容 89C系列单片机的引脚是和80C51一样的,所以,当用89C系列单片机取代80C51时,可以直接进行代换。这时,不管采用40引脚亦或44引脚的产品,只要用相同引脚的89C系列单片机取代80C51的单片机即可。 3.静态时钟方式 89C系列单片机采用静态时钟方式,所以可以节省电能,这对于降低便携式产品的功耗十分有用。 4.错误编程亦无废品产生 一般的OTP产品,一旦错误编程就成了废品。而89C系列单片机内部采用了Flash存储器,所以,错误编程之后仍可以重新编程,直到正确为止,故不存在废品。 5.可进行反复系统试验 用89C系列单片机设计的系统,可以反复进行系统试验;每次试验可以编入不同的程序,这样可以保证用户的系统设计达到最优。而且随用户的需要和发展,还可以进行修改,使系统不断能追随用户的最新要求。

51单片机C语言实验及实践教程_8.按键识别方法之一

51单片机C语言实验及实践教程_8.按键识别方法之一 发布: 2009-4-04 12:57 | 作者: 孙青安 | 查看: 88次 1.实验任务 I/O并行口直接驱动LED显示 每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2.电路原理图 图4.8.1 3.系统板上硬件连线

(1.把“单片机系统”区域中的P3.7/RD端 口连接到“独立式键盘”区域中的SP1端口上; (2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到 L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4.程序设计方法 (1.其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总希望某个命令只执行一次,而 在按键按下的过程中,不要有干扰进来,因为,在按下的过程中, 一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因 此在按键按下的时候,图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除 掉,一般情况下,我们可以采用电容来滤除掉这些干扰信号,但实际 上,会增加硬件成本及硬件电路的体积,这是我们不希望,总得有个 办法解决这个问题,因此我们可以采用软件滤波的方法去除这些干扰 信号,一般情况下,一个按键按下的时候,总是在按下的时刻存在着 一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个 按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms 以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。 由于要求每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,因此从按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,显然释放的过程,就是使其恢复成高电平状态。

MCU破解解密

单片机解密 单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就叫单片机加密。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫单片机解密。 单片机解密又叫单片机破解,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但已经成了习惯叫法,我们把CPLD解密,DSP解密都习惯称为单片机解密。单片机只是能装载程序芯片的其中一个类。能烧录程序并能加密的芯片还有DS P,CPLD,PLD,AVR,ARM等。当然具存储功能的存储器芯片也能加密,比如D S2401 DS2501 AT88S0104 DM2602 AT88SC0104D等,当中也有专门设计有加密算法用于专业加密的芯片或设计验证厂家代码工作等功能芯片,该类芯片业能实现防止电子产品复制的目的。 1.目前单片机解密方法主要如下: (1)软件攻击 该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMELAT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。 目前在其他加密方法的基础上,可以研究出一些设备,配合一定的软件,来做软件攻击。 近期国内出现了了一种51单片机解密设备(成都一位高手搞出来的),这种解密器主要针对SyncMos. Winbond,在生产工艺上的漏洞,利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FF FF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了。 (2)电子探测攻击 该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。 目前RF编程器可以直接读出老的型号的加密MCU中的程序,就是采用这个原理。 (3)过错产生技术

相关文档