更新时间:2024-05-21 15:46
反向开发可能会被误认为是对知识产权的严重侵害,但是在实际应用上,反而可能会保护知识产权所有者。例如在集成电路领域,如果怀疑某公司侵犯知识产权,可以用反向开发技术来寻找证据。
需要反向开发的原因包括以下几种:
相互运用性文件丢失:采取反向开发的情况往往是在某一个特殊设备的文件已经丢失了(或者根本就没有),同时又找不到工程的负责人。完整的系统时常需要基于的陈旧的系统上进行再设计,这就意味着想要整合原有的功能进行项目的唯一的方法便是采用逆向工程的方法分析已有的碎片进行再设计。产品分析:用于调查产品的运作方式,部件构成,估计预算,识别潜在的侵权行为。安全性评估。去除复制保护和伪装的登录权限。制造没有许可/未审批的副本。学术/研究目的。
随着计算机辅助设计的流行,反向开发变成了一种能根据现有的物理部件通过CAD、CAM、CAE或其他软件构筑3D虚拟模型的方法。.反向开发的过程采用了通过丈量实际物体的尺寸并将其制作成3D模型的方法,真实的物件可以通过如CMMs,激光扫描仪,结构光源转换仪或者X射线断层成像这些3D扫描技术进行尺寸测量。这些测量数据通常被认作是点集,缺乏拓扑信息并且同时通常会被制作成更有用格式例如多边形网格,NURBS曲线或者CAD模型。由于顶点云本身并不像3D软件里的模型那样直观,所以如同3-matic、Imageware、PolyWorks、Rapidform或者Geomagic这些软件都提供了将顶点云变成能可视图像或者被其他应用软件如3D CAD、CAM、CAE识别的格式的功能。
反向工程同时会被需要将真实的几何体应用在虚拟的数字开发环境中的商业活动中应用,比如将自己产品或者竞争者的三维数据数字化。通过这种手段可以分析出产品的运作方式,部件构成,估计预算和识别潜在的侵权行为等。
“反向工程”这个词用在软件上时,对不同的人有不同的意思,Chikofsky和Cross为那些用法写了一个研究报告并定义了一个分类系统。报告里说:
反向开发是这样一个过程:对系统进行分析,在高一级的抽象层次描述系统。它也可被看作“开发周期的逆行”。在这个模式里,实现阶段的输出(源代码形式的)被逆向工程回分析阶段,与传统的瀑布模型正相反。逆向工程只不过是一个检测的过程:软件系统不被修改(否则就成了软件重构)。软件防修改技术被用于防止有版权的软件和软件推动的系统被逆向工程或软件重构。实际应用中出现了两类逆向工程。第一种,软件的源代码可用,但是更高层次的部分几乎没有描述文档或者描述文档不再适用或者丢失。第二种,软件没有可用的源代码,任何能找到它的源代码的努力都被称为逆向工程。大部分人都熟悉这个词的第二种用法。软件的逆向工程可以使用净室技术避免侵犯版权。
软件工程中的黑盒测试与逆向工程有很多相同之处。测试者通常使用API,但是他们的目标是从外部找出漏洞和未归档特性。
反向开发的其他目的包括:安全审查, 移除版权保护(“破解”),规避消费电子中的访问限制,定制嵌入式系统(例如引擎管理系统),内部修补或更新,给功能不全的廉价硬件(例如某些显卡芯片组)增加功能,或者仅仅是为了满足好奇心。
反向开发经常被用在军事上,用来复制从战场上由常规部队或情报活动获得的别国的技术、设备、信息或其零件。二战和冷战中经常被用到。二战以来的著名例子有:
便携油桶:英美军注意到德军有一种设计绝妙的油桶,于是就用逆向工程复制了这些桶。这些被泛称为“便携油桶”。图波列夫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-71 TOW导弹:1975年三月,伊朗与休斯导弹系统公司的关于TOW和Maverick导弹合作的谈判因价格体系的分歧停止了,接下来的1979年革命结束了这种合作的所有计划。伊朗成功地对这种导弹进行逆向工程,正在生产他们自己的复制品:图芬(Toophan)。
在美国及其他许多国家,制品或制法都受商业秘密保护,只要合理地取得制品或制法就可以对其进行逆向工程。专利需要把你的发明公开发表,因此专利不需要逆向工程就可进行研究。逆向工程的一种动力就是确认竞争者的产品是否侵权专利或侵犯版权。
为了互用性(例如,支持未公开的文件格式或硬件外围),而对软件或硬件系统进行的逆向工程被认为是合法的,虽然专利持有者经常反对并试图打压以任何目的对他们产品进行的逆向工程。
为了获取一个有版权的计算机程序中隐含的思想和功能元素且有合法的理由要获取,当只有拆解这一种方法时,根据法律判定,拆解是对有版权作品的公平使用。