反向工程:目标倒推法的七个步骤及应用领域
反向工程:目标倒推法的七个步骤及应用领域
反向工程(Reverse Engineering),又称目标倒推法,是一种分析和研究产品或系统的方法,以理解其设计和功能原理。这种方法广泛应用于工程、技术、产品开发等领域,通过系统性的步骤和专业工具,实现对现有产品或系统的深入剖析和重建。本文将详细介绍反向工程的基本步骤、技术方法及其在不同领域的具体应用。
反向工程的基本步骤
反向工程通常遵循以下七个基本步骤:
确定目标:明确研究和分析的产品或系统的目标,这可以是了解其工作原理、揭示设计细节或寻找改进的可能性。
收集信息:收集与目标产品或系统相关的各种信息,包括技术文档、图纸、规格说明、用户手册、样品或实物等。
反向分析:对收集到的信息进行仔细分析和研究,理解产品或系统的组成部分、功能和相互关系。这可能涉及对电路、软件代码、机械结构等的分析。
逆向工程:使用逆向工程技术和工具来解析和还原产品或系统的设计。这可以包括反汇编、逆向软件分析、逆向工程软件等。
组装重建:基于对产品或系统的分析结果,尝试重新组装和重建其设计。这可能包括重新设计电路、编写新的软件代码、制作模型等。
验证和测试:对重建的产品或系统进行验证和测试,确保其功能和性能与原始产品或系统相似或超越。
文档记录:记录反向工程过程中的所有分析、设计和重建工作,以便参考和备忘。这样可以方便日后的维护、改进和进一步的研究。
需要注意的是,反向工程需要一定的技术知识和工具,同时也要遵守法律和道德准则,确保不侵犯他人的知识产权和商业机密。
反向工程在不同领域的应用
芯片反向工程
芯片反向工程,又称芯片解密(IC解密),单片机解密,是指通过专用设备或自制设备,利用单片机芯片设计上的漏洞或软件缺陷,直接提取加密单片机中烧写文件的关键信息,并可以自己复制烧写芯片或反汇编后自己参考研究。这种反向获取单片机片内程序的方式就叫芯片反向工程。
芯片反向工程涉及三大关键技术:样品预处理技术、芯片分析软件技术和芯片分析技术(也就是电路分析能力)。这些技术相辅相成,缺一不可,其中一项薄弱都会影响到企业分析芯片的能力和水平。
芯片分析的流程主要包括:
- 拍照:芯片逐层去封装,拍照并对准拼接获得各层芯片照片。
- 建库:通过芯片照片提取其中的单元器件建立单元库。
- 标注:通过单元库在芯片照片上标记单元器件及器件之间的连接关系。
- 整理:把标注出的单元器件整理成为结构清晰的电路图。
- 层次化:通过从下至上分析系统的逻辑及机制,从而建立从系统图表到传输级电路的层次化电路图和功能模块。
PCB反向工程
PCB反向工程,又称PCB抄板,即在已经有电子产品实物和电路板实物的前提下,利用反向研发技术手段对电路板进行逆向解析,将原有产品的PCB文件、物料清单(BOM)文件、原理图文件等技术文件以及PCB丝印生产文件进行1:1的还原,然后再利用这些技术文件和生产文件进行PCB制板、元器件焊接、飞针测试、电路板调试,完成原电路板样板的完整复制。
智能卡分析
智能卡的反向工程具有侵入性和破坏性,智能卡被层层刮掉用电子显微镜拍照。这种技术可以完整地揭示出智能卡的硬件和软件部分。主要的问题就是,把所有的东西按正确的顺序放好以找出每一个部件是如何工作的。工程师们用打乱内存位置的方法隐藏密码和操作,例如busscrambling。有时甚至可以在智能卡运行的时候用探针直接测量电压,设计师则用感应器来检测和防止。
软件反向工程
软件反向工程有多种实现方法,主要有三:
- 分析通过信息交换所得的观察。最常用于协议反向工程,涉及使用总线分析器和数据包嗅探器。在接入计算机总线或网络的连接,并成功截取通信数据后,可以对总线或网络行为进行分析,以制造出拥有相同行为的通信实现。此法特别适用于设备驱动程序的反向工程。有时,由硬件制造商特意所做的工具,如JTAG端口或各种调试工具,也有助于嵌入式系统的反向工程。对于微软的Windows系统,受欢迎的底层调试器有SoftICE。
- 反汇编,即借用反汇编器,把程序的原始机器码,翻译成较便于阅读理解的汇编代码。这适用于任何的计算机程序,对不熟悉机器码的人特别有用。流行的相关工具有InteractiveDisassembler。
- 反编译,即借用反编译器,尝试从程序的机器码或字节码,重现高级语言形式的源代码。
军事上的应用
反向工程经常被用在军事上,用来复制从战场上由常规部队或情报活动获得的别国的技术、设备、信息或其零件。二战和冷战中经常被用到。二战以来的著名例子有:
- 便携油桶:英美军注意到德军有一种设计绝妙的油桶,于是就用反向工程复制了这些桶。这些被泛称为便携油桶。
- 图波列夫Tu-4:三架飞往日本的B-29轰炸机迫降到了苏联。苏联没有类似的战略轰炸机,就决定复制B-29。几年后他们开发出了Tu-4,几近完美的复制品。
- V2火箭:战争结束时V2的技术文档和相关技术被西方联盟俘获。苏联和被俘的德工程师要用俘获的构件重建技术文档和图纸,用于生产这种导弹的代件。R-1启动了战后苏联导弹计划,一直到R-7,并导致了太空竞赛。
- K-13/R-3S导弹(北约代号为AA-2'Atoll)是苏联对AIM-9响尾蛇的反向工程复制品。早期传说一枚台湾AIM-9B射中中国大陆MiG-17后没有爆炸,这枚导弹留在了机身里,飞行员带着这枚导弹返回了基地。根据苏联公开的数据则是由坠毁在中国境内的美国海军的战斗机残骸上取得。
- BGM-71TOW导弹:1975年三月,伊朗与休斯导弹系统公司的关于TOW和Maverick导弹合作的谈判因价格体系的分歧停止了,接下来的1979年革命结束了这种合作的所有计划。伊朗成功地对这种导弹进行反向工程,目前正在生产他们自己的复制品:图芬(Toophan)。
法律地位与伦理边界
在美国及其他许多国家,制品或制法都受商业秘密保护,只要合理地取得制品或制法就可以对其进行反向工程。专利需要把你的发明公开发表,因此专利不需要反向工程就可进行研究。反向工程的一种动力就是确认竞争者的产品是否侵权专利或侵犯版权。
为了互用性(例如,支持未公开的文件格式或硬件外围),而对软件或硬件系统进行的反向工程被认为是合法的,虽然专利持有者经常反对并试图打压以任何目的对他们产品进行的反向工程。