开篇:润墨网以专业的文秘视角,为您筛选了一篇计算机软件反向工程范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要: 计算机软件反向工程,指的是对他人软件的目标程序,通过逆向分析与研究的手段,来推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,将之作为参考,以帮助自己开发相似或相同的软件的一种方法。对计算机软件反向工程进行探讨。
关键词: 计算机软件;反向工程;合法性
反向工程,又称为还原工程,逆向工程。反向工程的概念,最早出现在集成电路和布图设计权保护领域,原指对他人“掩膜作品”的布图设计进行分析评价,并根据这些分析评价的结果,来创作出新的布图设计。近年来随着计算机软件的快速发展,计算机软件领域也出现了反向工程的情况。计算机软件反向工程,也称为计算机软件逆向工程、还原工程,指的是对他人软件的目标程序,通过逆向分析与研究的手段,来推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,将之作为参考,以帮助自己开发相似或相同的软件的一种方法。其目的比较一致,主要包括分析研究计算机软件程序的功能特性,诊断和排除计算机软件原程序中存在的错误,开发计算机软件原程序的功能相似产品、附属产品,或兼容产品,还有就是分析计算机软件某一程序是否侵害其他计算机软件程序的著作权,提供研究结果报告,作为法院裁决著作权权属纠纷案件的参考。
1 概述
计算机软件反向工程主要指的是通过对某种计算机软件产品的结构、原理以及功能进行分析研究后,制作出功能相近、但又不完全一样的计算机软件产品的过程。从某种程度上说,计算机软件的反向工程,其技术的主要过程是分析计算机软件的程序,并且在分析计算机软件程序的过程中,使高于源代码级别的、更抽象层次的运行程序,得以逐渐建立起来。在这个过程中,如果使用有利于逆向工程的软件产品,有助于完善这个过程的建立。从广义上讲,通过对某种计算机软件产品的结构、原理以及功能进行分析和研究后,制作出功能相近、但又不完全相同的产品,属于反向工程的一个基本概念。
在计算机硬件领域内,反向工程也得到了应用,微软公司利用反向工程来开发人体力学鼠标器就是一个很典型的例子。微软公司生产的鼠标器,其功能很简单,只需要3个按键,就可以满足用户使用的需要。但是,如何才能让鼠标器的手感最好,且经过长时间使用也不产生疲劳感,却是生产厂商需要认真考虑的问题。对此,微软公司的研究人员进行了研究,首先,他们根据人体工程学的知识,制作了几个鼠标器模型,给使用者使用并评估,然后,根据使用者的评估意见,直接对模型进行修改,不行再次修改,这样经过多次修改,直至修改到所有使用者都满意为止。最后,再将修改后的鼠标器模型数据,利用反向工程软件imageware生成cad数据。这样,当他们生产的外观新颖、曲线流畅的鼠标器推向市场后,由于其符合人体工程学原理,手感舒适,不易疲劳,迅速获得了广大用户的认可,其产品的市场占有率得到了极大的提高。
2 计算机软件反向工程在生产中的应用
1)了解计算机软件产品生产厂家的实力。在购买某款计算机软件产品前,先对该计算机软件产品进行适当的反向分析,以确认厂家的计算机软件产品质量是否符合我们的安全需求。例如,由于网络安全产品的特殊性,在购买一批网络安全主动防御产品前,为了进一步获取该计算机软件产品是否符合我们的安全要求,可以采用反向工程的办法,在适当的层面上,对该计算机软件产品进行逆向分析,以确认该计算机软件的安全性以及技术优势。
2)分析计算机软件产品的功能。计算机软件厂商在很多时候会公开自己的很多组件接口,以方便客户根据自己的需要,开发自己使用的第三方组件。有的时候,由于计算机软件厂商的失误或错误,会导致客户自行开发的第三方组件出现一些未知问题。这个时候,反向工程就再次发挥作用。我们可以对计算机软件厂商的组件进行适当的反向工程分析、研究,以找到组件接口的内部逻辑流程,之后,就可以根据研究出的组件接口的内部逻辑流程,来创建更加和谐的兼容组件。
3)分析计算机软件产品是否存在安全漏洞或设计缺陷。在计算机软件领域内,安全是最为重要的。因此,在选择使用某款计算机软件产品前,需要采用反向工程的手段,对该款软件产品进行逆向分析,来研究该计算机软件产品是否存在安全漏洞,以及是否存在设计方面的缺陷。通过对计算机软件安全性的逆向分析,可以使该款计算机软件产品的安全性得到验证。
4)对计算机软件产品进行相似性对比。对计算机软件产品相似性对比分析,此项应用与著作权法律相关。例如,某家规模计算机软件厂商,通过采用逆向工程的办法,偷偷使用了另外一家计算机软件厂商的功能模块。如果他的行为被这一家计算机软件软件厂商发现,则该计算机软件生产厂家可以使用逆向工程,对这家软件厂商的产品进行对比分析,来确认代码是否存在相似性,从而判定是否侵犯其计算机软件著作权。
3 计算机软件反向工程的合法性问题
与自行设计开发软件相比,采用反向工程来进行计算机软件开发,不但可以节约大量的投资和时间,大幅降低开发成本,而且可以针对原计算机软件的不足,研发出更好的替代产品,取得更好的经济效益,因此,采用反向工程来进行计算机软件开发,对软件开发商很有诱惑力。然而,反向工程的实施,又会对原有软件开发商的利益构成威胁。双方利益的冲突,最终反映到法学界,就是对计算机软件反向工程合法性的争论。
在计算机软件知识产权保护中,计算机软件反向工程的合法性,一直是争议较大的问题。按照国际版权保护的基本原则,只有计算机软件思想、概念的表达形式,受著作权法的保护,而计算机软件的开发思想以及概念本身,是不受著作权法的保护的。计算机软件反向工程中,通过研究他人的计算机软件产品,分析出软件开发的思想、概念,再以该思想、概念为基础,来进行新的表达,原则上应当不构成对他人计算机软件著作权的侵犯。可问题在于,这两种表达之间,往往存在不同。