历史上的今天
今天是:2024年10月14日(星期一)
2019年10月14日 | 震网事件(Stuxnet病毒)的九年再复盘与思考
2019-10-14 来源:21ic
震网病毒又名Stuxnet病毒,是一个席卷全球工业界的病毒。震网(Stuxnet)病毒于2010年6月首次被检测出来,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。互联网安全专家对此表示担心。作为世界上首个网络“超级破坏性武器”,Stuxnet的计算机病毒已经感染了全球超过 45000个网络,伊朗遭到的攻击最为严重,60%的个人电脑感染了这种病毒。计算机安防专家认为,该病毒是有史以来最高端的“蠕虫”病毒。蠕虫是一种典型的计算机病毒,它能自我复制,并将副本通过网络传输,任何一台个人电脑只要和染毒电脑相连,就会被感染。
1.小序
2010年7月,“震网”(Stuxnet)蠕虫攻击事件浮出水面,引发了国际主流安全厂商和安全研究者的全面关注,卡巴斯基、赛门铁克、安天等安全厂商,Ralph Langne等著名安全研究者,以及多国的应急组织和研究机构,都投入到了全面的分析接力中。最终使这场攻击的大量细节被呈现出来:这是一起经过长期规划准备和入侵潜伏作业;借助高度复杂的恶意代码和多个零日漏洞作为攻击武器;以铀离心机为攻击目标;以造成超压导致离心机批量损坏和改变离心机转数导致铀无法满足武器要求为致效机理,以阻断伊朗核武器进程为目的的攻击。
9年的时间过去了,这一安全事件依然在安天的研究视野中。安天从2010年7月15日展开对震网的分析工作,搭建了模拟环境,在9月27日发布了《对Stuxnet蠕虫攻击工业控制系统事件的综合分析报告》[1],在后续形成了对其传播机理进行分析的《对Stuxnet蠕虫的后续分析报告》[2],以及分析其对工业生产过程作用机理的《WinCC后发生了什么》[3]系列分析报告。
安天提出了震网与毒曲(Duqu)同源的猜测,并先后发表了两篇验证性报告,并启动了对火焰(Flame)恶意代码的马拉松式的模块分析。在工作推进中,安天逐步认识到震网、毒曲、高斯(Gauss)、火焰,这些高度复杂的恶意代码间存在着同样的背景联系。这些研究工作对安天后续展开对方程式组织(Equation)的深度分析起到了非常重要的作用。
由于历史原因,其中部分研究文献并未公开,而一些分析进展是碎片化的,虽然在我们的对外技术演讲中有所提及,但并未作为文献发布。这是安天编写这篇文献的原因之一。震网的整体运行框架、USB摆渡机理和传播失控分析,以及图解Tilded框架与Flamer框架的关联,将震网、火焰、毒曲、高斯、Fanny、Flowershop之间的关系进行串接的相关章节,是对这些成果的整理。
今天看来,在前期分析震网系列事件的过程中,我们缺少一种真正意义上的框架化方法。依然更多的是从自身习惯的反恶意代码视角来看待整个攻击过程。尽管我们给震网这样的复杂攻击提出了一个A2PT(即高级的高级可持续性威胁)的命名,但分析中始终缺乏作业到作战视角的思考。在相关专家的指导下,我们对网空博弈、敌情想定有了新的体悟,逐渐从威胁框架视角进行方法论切换,实现自我能力完善。也希望通过威胁框架这一视角来解读“震网”这场看起来依然高度复杂的“昨天的战争”。
本文也详细解读了一个值得思考的问题,震网作为一种没有感染属性的蠕虫,为何会有大量的样本存在。这个原理我们在早期的分析工作中已经发现,即震网的载荷投放程序,在每落地一台机器时,会有一个内嵌配置数据的自我更新,从而导致震网的每次落地形成的主执行体的HASH均不同,同时其实际攻击载荷多数均被包裹在主DLL之中,并不落地。而震网的相关域名则是在其已经达成其主体作业效果的情况下才被曝光的。这从某种意义上也昭示了面对更高级、隐蔽的攻击行动,以HASH、域名等为主体的威胁情报实际上早就面对着无效的危机。

图 1-1 震网事件时间轴
2.为什么是震网
在信息技术发展历史上,出现过大量典型的安全事件,但为什么“震网”被视为具有威胁里程碑意义?震网被认为是第一个以现实世界中的关键工业基础设施为目标的恶意代码,并达到了预设的攻击目标,或者说,这是第一个“网络空间”意义上的重大攻击事件,而非传统的网络攻击事件。尽管此前也存在着一些通过信息攻击手段影响工业设施的传闻,但基本都缺乏技术层面的实证支撑。
从安天此前提出的观点来看,震网的里程碑意义并不是在于其相对其他简单的网络攻击的复杂性和高级性,而在于其证实了通过网络空间手段进行攻击,可以达成与传统物理空间攻击(甚至是火力打击)的等效性。在2016年的报告中,安天研究人员将上世纪70、80年代的“凋谢利刃与巴比伦行动”(在1977年~1981年间发生的以、美联合,在两伊战争期间针对伊拉克核反应堆进行军事打击的事件)与震网事件进行对比分析看出,通过大量复杂的军事情报和成本投入才能达成的物理攻击效果仅通过网络空间作业就可以达成,而且成本也大大降低。正如美国陆军参谋长前高级顾问Maren Leed所讲的——网络武器可以有许多适应环境的属性,从生命周期的成本角度看,它们比其他的武器系统更为优越[4]。


震网系列攻击也全面昭示了工业基础设施可能被全面入侵渗透乃至完成战场预制的风险,震网的成功是建立在火焰、毒曲恶意代码的长期运行、信息采集的基础上。在攻击伊朗铀离心设施之前,攻击方已经入侵渗透了伊朗的多家主要国防工业和基础工业厂商,包括设备生产商、供应商、软件开发商等,表2-2是多个企业遭遇入侵的事件。
表 2-2 伊朗基础工业体系遭遇渗透的情况

3.震网整体结构和运行逻辑
震网的结构非常复杂。其中又经历了从0.5到1.x的版本更迭,其破坏机理从以干扰离心机阀门、造成超压导致离心机批量损坏调整为修改离心机转数。同时其开发框架也发生了变化。我们以流行更为广泛的1.x版本为对象,进行整体结构和运行逻辑梳理。震网的核心是仅在内存中解密存在的DLL文件(以下简称主DLL文件)。DLL文件包含32种不同的导出函数以及15种不同的资源,每一个导出函数都有不同的控制功能,其中主要涉及导出函数15(初始入口点)、导出函数16(安装)、导出函数32(感染连接的移动设备,启动RPC服务)、导出函数2(钩挂API以感染Step7工程文件)等;每个资源也分别执行不同的功能,主要涉及资源250、资源201、资源242等;导出函数正是利用这些不同功能的资源来控制震网执行不同的分支操作。

Stuxnet Dropper的资源在安装执行过程中会释放载荷,震网落地文件如表3-2所示。

按资源类型,对照其编译时间戳,获得PE类型资源版本迭代,如图3-1所示,由图能够看出资源202、210都存在3个可能的版本,资源208存在2个可能的版本,其余各资源都仅有1个版本。另外资源207、231仅存在少数样本,在后续版本的Stuxnet中已经删除。

图 3-1 PE类型资源版本迭代
安天CERT基于对震网样本集及已有数据的分析,绘制了震网整体运行框架,它包含传播和安装执行。

图 3-2 震网整体运行框架图
震网的传播主要包括两种方式,一种是移动设备感染,利用LNK漏洞或者通过autorun.inf文件进行传播;另一种是网络传播,涉及WinCC数据库感染、网络共享传播、打印机后台处理程序漏洞传播、Windows服务器漏洞传播等多种方式。这两种传播方式虽然不同,但最终都会释放主DLL文件,进行后续的安装和执行操作。震网感染目标系统后,会启动RPC服务器监听网络,将网络上其他感染计算机都连接到RPC服务器,并查询远程计算机安装的震网版本,以执行对等通信和更新,如果远程计算机上的震网版本较新,则本地计算机就会请求新版本并自我更新,如果远程机器上的震网版本较旧,则本地计算机上的震网就将自身副本发送给远程机器。这样,震网可以在任何感染机器上更新并最终传播到所有机器。
在安装执行中,传播释放的主DLL文件首次加载时调用导出函数15执行一系列检查工作,包括检查配置数据是否为最新、检查操作系统是否为64位、检查操作系统版本是否匹配,如果不符合其安装执行要求,则退出;此外,检查目标系统是否具备管理员权限,如果不具备,则利用资源250中两个当时的零日漏洞进行提权以获取最高权限;之后,检查目标系统安装了哪些反病毒软件以及哪个进程适合注入;导出函数15完成上述规定的检查后,震网就会调用导出函数16。
导出函数16是震网的主安装程序。首先,检查目标系统配置是否匹配、注册表键值是否为特定值、当前时间是否小于终止时间,如果不符合这些安装执行要求,则退出;继续执行,震网通过创建全局互斥量与不同的组件通信,并再次检查目标系统当前时间,确保只在小于终止时间的目标系统上执行;从磁盘中读取其加密版本,解密、加载到内存中,从新加载的文件中调用导出函数6,获取自身配置数据的版本信息,如果与磁盘文件的版本相同,则继续执行;震网提取、解密资源201和资源242,并将两个驱动文件写入磁盘,分别用于持久化和隐藏恶意文件,为了规避检测,震网会修改这两个文件的时间以匹配目标系统目录下的其他文件时间;创建rootkit服务和注册表,以实现震网的持久化,并再次创建全局互斥量;为了继续安装和传播,震网将控制权传递给其他导出函数,一种是将主DLL文件注入service.exe进程,并调用导出函数32,以感染新连接的移动设备,以及启动RPC服务器,另一种是将主DLL文件注入Step7进程,并调用导出函数2,以感染所有指定的Step7文件。
4.威胁框架视角下的震网解读
能够研发类似震网的复杂高级的恶意代码,是源自高级网空威胁行为体具有充足资源和成本支撑能力。其作业过程具有庞大的工程体系和人员团队为支撑条件,是一系列复杂的动作组合。与此同时,复杂的过程并不必然全部由“高级”攻击手段和“高级”装备支撑。防御方的一些低级配置错误和未及时修补的漏洞会成为威胁行为体攻击的入口;高级网空威胁行为体也会劫持和利用低级网空威胁行为体所掌控的僵尸网络等资源,这些都使局面更为复杂。
解读复杂的攻击行动,并驱动防御的改善,需要有更理想的结构化方法。杀伤链等模型用于解构震网式的复杂攻击,依然显得不足,需要进一步改善。威胁框架作为一种对攻击过程更为结构化和数据化的描述方法,开始成为改善防御能力的威胁认知基础。当前较为流行的威胁框架主要有MITRE提出的ATT&CK,和NSA提出的《NSA/CSS技术网空威胁框架》(NSA/CSS Technical Cyber Threat Framework)。后者对前者做了一定的借鉴工作。鉴于NSA/CSS技术网空威胁框架,更具有情报机构的背景,因此更适合推演类似震网级别的A2PT攻击。
从威胁框架出发,针对威胁每个阶段、逐个行为推演,无论对评估当前防御体系及相关安全产品能力的有效性和合理性,还是对形成体系化的防御规划与建设目标,都是一种有益的工作。2019年6月,安天发布的“方程式组织”攻击SWIFT服务提供商EastNets事件复盘分析报告中[5],将事件涉及的威胁行为映射到了“NSA/CSS威胁框架”V2版本中。
将震网事件涉及到的威胁行为映射到威胁框架的类别与动作,如图4-1所示。

图 4-1 震网事件映射到威胁框架
在震网行动中共涉及21个目标中的83种行为,其中包括推测的和确定执行的行为。
表 4-1 震网事件中涉及的类别与动作



针对震网级别的攻击,需要重点关注的是其决策和准备过程,类似如此复杂精密的攻击,如果不搭建一个完全等效的模拟靶场环境,是很难达成效果的。如果仅仅把目光放在恶意代码和漏洞利用工具本身,而不能就行动管理与资源保障、目标勘察与环境整备等前期环节进行深入的分析,就一定程度上失去了引入威胁框架的意义。但无疑,这一部分的分析更为困难和复杂。
从威胁框架视角重新梳理震网,也让我们可以解开“Michael之问”。2014年3月,洛克希德·马丁公司的高级研究员Michael在博客上对震网事件的意图和能力两个方面进行了分析,提出了“Why Stuxnet Isn't APT?”[6]这一设问。在这篇文献中,Michael 以震网的传播失控和明显的物理空间后果不符合APT的高度定向性和隐蔽性、震网比常见的APT攻击更为高级等方面进行了论述,其更倾向于震网是一种作战行动,而非APT攻击。Michael关于震网是一种比APT更高级的观点,与安天将震网级别的攻击命名为A2PT观点是相近的。但从Michael的根本观念是将APT与CNE(网络情报利用)相映射的,因此当震网以达成CNA(网络攻击、作战)为目的的情况下,则提出这种质疑是有道理的。但在现实场景下,很难生硬的把CNE与CNA割裂开,CNE通常是CNA的基础。CNE转化为CNA可能只是指令与策略的调整。在威胁框架体系中,CNA的动作是致效能力运用中的中的若干动作环节,这就将CNE与CNA良好的统合到一个框架体系中,从而能更好的推动分析与防御改善的体系的改善。
5.震网的USB摆渡与传播“失控”的原因
震网是针对非常特殊的工业场景进行攻击的恶意代码,2019年,有相关媒体报道,震网病毒进入到伊朗相关物理隔离的工业网,是依靠荷兰情报人员在攻击方的要求下招募了“内鬼”[7]。而在内网中,震网主要的传播方式为借助USB摆渡+基于漏洞的横向移动。其预设的攻击场景是与互联网隔离的内部网络。安天在最早的分析报告中,对于其传播机理[1],以如图5-1进行了说明:

图 5-1 样本的多种传播方式
整体的传播思路是:染毒U盘利用快捷方式文件解析漏洞,传播到内部网络;在内网中,通过快捷方式解析漏洞、RPC远程执行漏洞、打印机后台程序服务漏洞,实现联网主机之间的传播;最后抵达安装了WinCC软件的主机,展开攻击。在这一过程中,亦存在染毒主机对插入的U盘进行感染的过程,但经过安天分析这一动作并非是无条件的。

图 5-2 U盘感染过程中配置文件解析
感染震网的计算机会监控接入的设备,一旦发现U盘插入且满足条件即开始写入U盘摆渡文件,具体条件如下:
●当前时间的U盘没有被感染;
●根据配置标记(不是默认设置)来感染磁盘,如果默认配置不感染,那么感染的发生取决于日期;
●感染当前计算机少于21天;
●U盘至少有5MB的剩余空间;
●U盘至少有3个文件。
USB文件和加载攻击逻辑如图5-3所示,含4个适用于不同Windows版本的LNK快捷方式漏洞(CVE-2010-2568)文件和2个TMP文件(~WTR4141.tmp是USB Loader,~WTR4132.tmp是Dropper,均为DLL格式,文件属性为隐藏、系统),震网通过rootkit隐藏这6个文件,因此被震网感染的计算机上并不能看到U盘里的这些文件。
U盘摆渡攻击过程为:被感染的U盘插入新的计算机,用户打开此U盘,系统开始遍历U盘目录文件,当遍历到LNK文件时漏洞触发加载~WTR4141.tmp执行,~WTR4141.tmp首先会挂钩文件相关函数隐藏这6个文件(在打开U盘的一瞬间可以看到这4个LNK文件,如果开启了显示隐藏和系统文件选项,还可以看到2个TMP文件,但瞬间漏洞触发这6个文件全部隐藏在文件夹下看不到了),随后~WTR4141.tmp在内存中加载调用~WTR4132.tmp完成震网的主模块执行。

图 5-3 USB文件和加载攻击逻辑示意图
Stuxnet是否感染到U盘,取决于加密配置文件mdmcpq3.pnf中的多个值,包括:
●偏移0x6c、0x70、0xc8处的标记位;
●偏移0x78、0x7c处的时间戳;
●偏移0x80、0x84处的数值。
只有当每个值对应的条件都满足时,才会感染U盘。其中,偏移0xc8处的位默认设置为不感染。
Stuxnet不会主动修改配置数据,配置的更新通过版本更新来完成。因此,我们认为它是尝试连接因特网来判断自己是否在内部网络中。如果是,就只通过其他途径传播;只有通过连接服务器或其他被感染主机更新之后,才感染U盘。
当Stuxnet感染U盘时,拷贝多个.lnk快捷方式文件和两个.tmp文件到根目录。这两个.tmp文件,一个是用于隐藏它们自身的驱动程序,带有数字签名;另一个是病毒体本身以及一个投放器,配置信息已经存在于病毒体中。
根据赛门铁克在2010年7月-10月监测的震网攻击数据,全球155个国家的计算机被感染,其中约60%的受害主机位于伊朗境内[8]。对于一次被认为是应具有高度定向性质的作业行动,却呈现出发散性传播效果的原因,目前各分析方给出了多种不同猜测:
⊕第一种猜测是,各种原因导致了传播失控。
尽管震网本身的USB摆渡+横向移动设计,使其只能在内网传播。但由于其本身的传播和攻击策略是基于隔离网络目标设计,要达成一种无实时远控作业,因此多数条件下只能以预设停止传播时间等因素,而无法像基于互联网的攻击作业一样,进行远程遥控和调整。由于蠕虫感染了供应商工程师带入现场的笔记本设备,之后又被带入到供应商自身的网络中和其他客户的内网中。内网的VPN互联也加剧了这种传播,最终导致震网的传播失控。这种观点与一些实际情况有一定冲突,比如震网0.5版本,作业周期较长,达成了攻击目的,但并未发生扩散传播。
⊕第二种猜测是,这是作业方为获取更多信息有意为之。
其目的是根据感染链条,进一步了解伊朗核工业体系供应商的情况。德国控制系统安全顾问Ralph Langner在《Stuxnet’s Secret Twin》(震网蠕虫的秘密变种)[9]中的一个推测是这种外部扩散,是因为攻击者希望借机获取到与伊朗相关设施的供应商的情报。他指出“鉴于Stuxnet将受感染系统的IP地址、主机名以及基本配置信息上报给其C&C服务器,看来攻击者显然预期(并接受)传播到非军用系统,且相当渴望密切监测它—攻击者最终将获取在纳坦兹工作的承包商以及其客户的信息,甚至伊朗秘密核设施的信息。”
⊕第三种猜测是作业方为了掩盖定向攻击意图,以感染范围的扩大提升取证溯源的难度。
包括干扰对真实攻击目标更准确的判断和定位。
⊕第四种猜测是攻击方展示能力,达成对他国恐吓甚至讹诈的需要。
如果事件单一的发生于伊朗,可能导致此事件最终不会浮出水面。而只有放任其“越狱”传播,才有可能更快达成此种效果。在《Stuxnet’s Secret Twin》(震网蠕虫的秘密变种)一文中,Ralph Langner同样猜想,“Stuxnet被发现意味着行动的终结,但是它的实用性并不一定结束,它将向世界展示网络武器在超级大国手中可以做什么。因为不同于实体军事装备的展示,阅兵时是无法展示U盘。攻击者也可能关注另一个国家,最坏的情况下是一个对手;而且将第一个证明其在数字领域的能力--这个场景简直可以说是超级大国历史上的另一个Sputnik(放卫星)的时刻。所有这些理由使得攻击者不必太过担心被检测到。”
震网的发散性传播到底是一种“失控”,还是攻击方有意所为,或者两者因素都存在。最终的效果可能并非是某个单一原因,而是多个因素的组合。
6.震网为何有数千个样本?
作为一种目标高度定向的攻击行动,一个曾令人费解的事实是,震网并不具备感染其他宿主文件的属性,但却有大量的样本存在。
在恶意代码对抗工作中,样本被视为一种重要的基础资源。样本被视为恶意代码所对应的一种实体文件形态,包括带有感染式病毒的宿主文件、非感染式恶意代码的文件、以及恶意代码所存在的扇区或内存的文件镜像。在威胁对抗的深度从最初的检测、查杀,逐渐扩展到响应,深度机理分析和溯源中,我们也发现对样本的需求和定义开始发生一些变化。调查/猎杀意义上的样本和传统检测意义上的样本存在着差异,传统检测意义的样本既包含在现场场景中所采集的文件,同时也包含了为了测试反病毒引擎的能力以及分析中所二次构造出的样本变换结果。对于检测和清除能力来说,进行这种样本构造是必须完成的,例如在样本规范中,特别是对于感染式病毒来说,为保证检测和清除效果的检验,相关业内标准在DOS时代就提出过根据DOS_COM、DOS_MZ等文件大小,被感染文件要达到规定的数量,对于变形病毒的样本,还有需要构造出更多数量的样本的要求。而对调查/猎杀意义来说,在攻击场景中客观存在则成为一种重要的需要被标识出的样本属性。
安天捕获的震网样本集合是数以千计的,但这些样本可以分成几个不同的标识维度,基于U盘摆渡的原始载荷形态、在主机上落地的文件、不落地的模块(需要静态拆离或动态Dump)等等。一类是从其中拆解出的最终攻击载荷(在实际的攻击中多数是不落地的)和一些辅助的驱动等。从磁盘介质提取的实体文件数量较多的主要分为三种:攻击载荷释放器Dropper(原始文件名为~WTR4132.tmp)、移动介质载荷加载器USB Loader(~WTR4141.tmp)和LNK漏洞利用文件,其中Dropper样本数量呈现发散态,从安天所掌握的数量来看,在千数量级别。而最终的攻击功能模块载荷和辅助驱动在百数量级,总数呈现收敛态。

震网样本集的分类情况如图6-1所示。
图 6-1 震网样本集分类
安天CERT分析发现,造成震网样本集基数较大的原因是:
1.Dropper样本在落地时写入目标配置导致文件变化
攻击载荷释放器Dropper存在一个名为stub的资源段,攻击载荷(即主DLL)即存在于这个字段中。而在病毒落地时,stub段中存储的配置数据会被当前感染节点的相关信息数据更新,这是导致震网样本集数量多的一个最主要原因。也就是说,每次落地震网都会再形成一个HASH不同的Dropper。这就导致了震网的样本集从HASH数量上看,呈现发散状态。而样本集中Dropper功能的真实“版本”是有限的,Dropper中98.84%的导入表相同,有91%的样本text段单独拆离出的文件是完全一致的,MD5值均为17e2270d82d774b7f06902fa7d630c74,这是一个发生规模感染的Dropper主力版本。

图 6-2 Dropper导入表统计
stub段作为主DLL存放的位置,其布局解析如表6-1所示。
解密主DLL的函数如下:

图 6-3 主DLL函数解密
主DLL之后的数据中存在加密的配置信息,能够在感染过程中控制震网的具体行为,使得震网具备在无法远程控制的情况下,依然可以按照预设策略工作,确保其复杂的作业可以成功。其配置文件也记录了被感染机器信息和时间等特征,这样做的目的可能是攻击者希望这些信息在感染时被提取记录,一旦联网时可以直接将相关信息提交给C2,而不用做二次提取操作,减少对主机环境操作,以减少暴露的机会。
部分解密后的配置信息如下:

图 6-4 部分解密后的配置信息
表6-2是部分配置内容的解析,这些值能够控制震网在受害主机上的行为,具体内容包括:通过+A4值控制开始感染时间,如果这个值不能满足感染要求,则退出;通过+78值控制控制终止感染USB的时间,以及涉及控制震网传播、版本更新等值。在解密后的配置信息中这种控制震网行为的值有近百个,正是这些值来控制震网的复杂行为。
表 6-2 部分配置内容解析

Dropper的配置文件校验函数:
图 6-5 Dropper的配置文件校验函数
配置块的一些关键信息:如感染路径、感染时间、配置块长度,通过提取配置数据分析后发现,由于在每次感染新的设备后,其自身都会更新数据配置块,致使每感染一台设备,Stuxnet就会多出一个含有新配置的Dropper样本,图6-6为震网开始感染时间的数量分布图,其中2008年-2010年为可信度较高的感染时间,而2000年-2007年为可信度较低的感染时间。

图 6-6 开始感染时间数量分布图(由于内网主机可能的存在时钟不同步问题导致错误的起始时间)
在震网的安装执行过程中会多次检查目标系统当前时间,如果目标系统时间大于终止时间,震网就会退出安装执行过程。图6-7是震网1.x版本终止U盘感染时间的统计,它有三个终止U盘感染时间:2010年7月31日、2010年8月31日、2010年12月31日,其中绝大多数的终止U盘感染时间为2010年12月31日。

图 6-7 终止U盘感染时间统计
2.分析提取工作导致的
史海拾趣
|
对于一个新项目的研发设计过程,电磁兼容设计需要贯穿整个过程,在设计中考虑到电磁兼容方面的设计,才不致于返工,避免重复研发,可以缩短整个产品的上市时间,提高企业的效益。 一个项目从研发到投向市场需要经过需 ...… 查看全部问答> |
|
首先来一段非常俗的开场白(O(∩_∩)O哈哈哈~):2009 年是不平凡的一年。。。。。。前半年在eeworld混的很开心,后半年忙的要命,后几个月来来了也只是匆匆走过。 一年来只记得几件事。一是天天在eeworld混着,有一天 ...… 查看全部问答> |
|
论坛上好像有人说解决了6410硬件解码后输出到屏上导致屏闪的问题,请问是怎么解决的,官方最新的bsp解决这个问题了吗 xiexie… 查看全部问答> |
|
最新学习在WINCE上开发串口,需要,把每次配置的串口信息保存下来,下次运行时再次读取,看了许多文章说是Ce下不支持INI,有什么好的办法,哪位有完整的实例参考一下?… 查看全部问答> |
|
$(\'swf_pYl\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjgyMjI5NzE2/v.sw ...… 查看全部问答> |
|
各位前辈,晚辈现在有点APD(雪崩二极管)方面的难题,麻烦各位前辈~~ 各位前辈,晚辈现在有点APD方面的难题 麻烦各位前辈~~ 各位前辈,晚辈现在在做一个APD(雪崩二极管)方面的项目,现在需要设计一个检测APD性能参数的电路,现在手头资料很少,希望各位前辈,不吝赐教,晚辈跪谢!!!… 查看全部问答> |




