软件反向工程,指通过对他人软件的目标程序进行逆向解剖、分析,方式是从软件的目标代码,通过反汇编方式寻找源代码,以推导出他人的软件产品的功能、组织结构、处理流程、算法、界面等设计要素。一般认为对软件进行反向工程的目的有六种:
㈠、分析研究程序的功能性能;
㈡、诊断和排除一个程序中存在的错误;
㈢、分析其是否侵害其他程序的版权;
㈣、进一步完善该程序;
㈤、开发一个程序的附属产品;
㈥、开发一个程序的兼容产品或功能相似型产品。
由于个人学习、学术科研等行为具有明显的排除非法性,作为有争议的软件反向工程的行为是指利用反向工程所得到的设计要素自己开发软件时的参考,或者直接用于自己的软件产品中。
对软件反向工程进行理解时,首先要明确,“反向工程”作为一种技术手段是价值中立的,而且还是技术含量很高的一门学问。事实上,保护知识产权同样依赖于反向工程——对怀疑存在侵权行为的软件进行反向工程的结果正是做出司法裁决重要的直接证据。另外,反向工程(Reverse engineer)、反向编译(Decompile)以及反汇编(Disassemble)三者关系亦需厘清。反向工程是相对宽泛的概念,反汇编、反编译可以作为其主要形式或手段存在。但在很多时候,三者往往是替代使用的。任意在搜索引擎中键入其中一个词,搜索结果中有很多包含反向工程条款的软件声明或者最终用户协议,表述为:“不得对本软件进行反向工程,如反汇编、反编译。”更常见的是:“不可对本软件产品进行反向工程、反向编译或反汇编。”
尽管如此,从软件技术开放系统的国际趋势和国际计算机法学界的探讨来看,承认软件反向工程的合法性已成为一种趋势。
三、计算机软件反向工程合法性的法理分析
正如上文所述,软件反向工程是否具有合法性,这取决于各国法律的规定,它体现的是立法者的主观意志。但它究竟是否对软件著作权人造成损害却是一个需要认真研究的客观事实。软件著作权分为精神权利和财产权利两部分。与精神权利相联系的是有关软件作品的署名权、发表权,修改权,注释权。
软件复制品的合法持有人在实施反向工程的过程中只要不以自己名义擅自发表他人软件,或者超越法律许可的条件对软件进行修改,是不会对软件著作权人造成精神损害的。与财产权利相关的是有关软件的复制、展示、发行、修改、翻译、注释、许可使用和转让权,因为通过这些使用方式可以使软件著作权人获得经济报酬。
软件复制品的合法持有人如果仅仅为了自身使用的需要,而不是为了经营牟利,那么实施软件反向工程是不可能对软件著作权人造成经济利益的损害的。当然软件在更高层次上的再开发必将加剧软件市场的竞争,对原著作权人造成潜在的经济威胁,但这正是推动人类社会经济发展的原动力.不应视为对软件著作权人利益的损害。
因此对软件实施反向工程与损害软件著作权人利益之间虽然有联系,但不存在必然的因果关系。反向工程是实施仿制的必要条件,但仿制不是反向工程的必然结果。在不少情况下实施反向工程的目的是合理的,我们不应因为反向工程可能会产生侵权的后果而去禁止反向工程本身。
我国虽然在计算机软件保护方面已制定了《计算机软件保护条例》、《计算机软件著作权登记条例》等法律法规,但都未涉及软件反向工程问题,这一点应尽早引起立法机关的重视,正是由于我国法律对有关软件反向工程的问题没有规定,因此诸如微软之类的公司在其软件产品的最终用户使用协议中都规定:“禁止对该软件产品进行反向工程,如果当地法律允许反向工程则除外。”
同时明确规定在欧洲区域内取得的软件产品不受此限制。所以,如果我国不在法律文件中明确规定软件反向工程的合法性情形,那么就会造成国外厂商可以对国内的软件进行反向工程,而国内的开发厂商不能对国外的软件进行反向工程,于是就把自己置于十分不利的地位上。
此外,我国的软件产业刚刚起步,如果不允许进行软件反向工程,我们就会在很大程度上处于国外软件厂商的垄断控制之下而难有作为。因此,从保护我国的软件产业出发,从促进科技进步与社会发展着想,我国应尽早借鉴国外的立法经验,在我国计算机软件保护立法中应当尽快明确规定软件的反向工程问题。