反向编译又称软件的“反向工程”,软件“反向工程”是指将软件的目标代码形式经过反汇编、反编译,转化为人能阅读懂的源代码形式。这种方法通常是通过对计算机软件目标程序进行分析并且反向推导出其相应的源程序,是通过反向编译获得软件中不受著作权法保护的内容,例如,软件的功能、组织结构、处理流程、算法、界面、构思等。
一般情况下,反向编译的目的有以下几种:分析软件的功能;诊断和排除软件中存在的错误;分析该软件是否侵害其他软件的著作权;完善该软件;开发该软件的附属品;
开发该软件的兼容产品或功能相似的产品。
目前,我国对软件反向工程是否合法还没有相应的法律规定。而近年来在美国及欧洲的一些判例和规定中,已经出现了允许软件开发者为了获悉他人软件中所包含的思想原理,对该软件进行反汇编、反编译等工作的现象。但是,允许反向编译是有条件的,即进行反向编译的必须是该计算机软件复制品的合法持有者,而且不能以抄袭复制该软件的表现形式用于制作侵权软件为最终目的,抄袭复制只能作为整个过程中间的一个步骤。不但如此,进行反向编译的时候也不能对采取加密措施的软件进行解密,否则仍会构成侵权。
反向工程是一个技术术语,指通过对产品进行解剖和分析,从而得出其构造、成分以及制造方法或工艺。技术行为是一种中性行为,在软件著作权保护上既不必然合法,也不必然违法,区别不在于反向工程本身,而在以下两点:
1、反向工程的对象是合法取得,还是违法取得的。合法反向工程的前提,是必须具有合法的物权,通过公开市场购买市售产品,这是使反向工程合法的最通常手段。由购买市售产品取得产品物权,从而解剖、分析属于自己的物品,属于正当的竞争手段。
反向工程对象的物权,还可以通过其他合法渠道取得如转让、赠予等。
2、反向工程本身是否违反约定义务。反向工程是否合法,有时不能只看是否具有物权,断言只要具有物权就不违反法律,是片面的。
(1)反向工程的对象是合法购买,但购买者承担了不进行反向工程的约定义务,这时虽然得到了物权,但是由于约定,丧失了反向工程的权利,反向工程违反约定,从而违反法律对约定即合同的保护。不过任何事情均有一个度,如果销售者不是对销售数量有限的商品提出要求,而是对销售数量很大的商品提出不得进行反向工程的要求,销售者的要求就超过
了限度,损害了购买者的合法竞争权利。对销售数量很大的商品,如果销售者在包装或说明书上要求不得进行反向工程,其要求可被认为无效。
(2)反向工程的对象是合法购买的产品,购买者又没有承担义务,反向工程是否合法了呢?仍不尽然。如果进行反向工程者的雇员,对商业秘密权利人负有义务,这时反向工程也是违法的。例如一个企业雇用与商业秘密权利人有保密合同的跳槽人员来对市售的商业秘密产品进行反向工程,该企业的反向工程就违反了保护商业秘密的法律规定。
反向工程,也称作逆向工程或还原工程。软件反向工程是指将他人的目标代码程序利用反汇编、反编译软件使其还原为汇编代码的过程。进行软件反向工程,是否具有合法性,在软件版权界争议很大。
反向工程是软件技术开发和技术进步所必须的。因此,一般认为进行软件反向工程的目的至少包括:测试、诊断并排除程序中存在的错误,分析研究程序的功能特性,开发基于某程序的附属产品,进一步完善某程序,对比分析、研究某程序是否侵害其他程序的版权,开发某程序的兼容产品或与其功能相似的产品。那么,未经授权对一项软件进行反向工程是否侵害该软件版权呢?认为构成侵权的观点和理由是:在反向工程过程中,(1)不可避免地需要把某程序的目标代码通过反汇编和反编译还原为该程序的源代码,而程序的目标代码和源代码同样受到版权法的保护,这是对该目标码的复制行为;(2)不可避免地需要把某程序的目标代码和源代码打印出来,便于阅读和分析,这同样是一种版权禁止的复制行为;(3)不可避免地需要通过对某程序源代码的分析,获得该程序的处理逻辑和流程图,即获得程序的结构、顺序和组织(SSO),而针对处理逻辑和流程图编写的新程序是该程序的演绎作品,即这是演绎他人作品的行为;(4)由于反向工程的最主要目的就是获得程序的结构、顺序和组织(SSO),而程序的SSO是程序的重要表达形式,构成程序的一部分,受到版权法的保护;(5)进行反向工程的目的几乎是为了获取程序的SSO,开发新程序,完全是出于商业目的而使用该程序,同时,反向工程的结果往往是因为新的兼容产品的上市严重影响原程序产品的市场和销售。
认为反向工程不构成侵权的观点和理由是:(1)对程序进行反向工程本质上就是对程序作品的阅读和理解,这是版权法授予软件合法持有者的权利;(2)对程序进行反向工程的最主要目的就是获得程序的结构、顺序和组织(SSO),而程序的SSO是属于思想的范畴,不能受到版权法保护;(3)反向工程本身是一项科研活动,即使对原程序的目标代码和源代码存在复制行为,也属于合理使用范围;(4)反向工程是软件开发技术的必需,也是方便用户、满足兼容性等软件技术特性以及适应软件技术进步、促进社会公共利益的需要。
软件的兼容性要求源于软件用户的需求,为了满足兼容性要求,需要进行反向工程,即对上述第一个问题的回答是肯定的。对于第二个问题,在美国法院对Whelan案件和Altai案件以及Lotus案件[2](P206-212)中进行了比较、分析和论述,可以说,从司法上来讲,程序的SSO属于程序的思想,不属于程序思想的表达,不受版权法保护。同样,对于第三个问题,在案件的判决中也肯定和确定了在先软件开发者不能限制在后软件开发者和忽视广大用户利益的原则。因此,可以得出的结论是:通过反向工程获得原程序的SSO,并在此基础上开发兼容原程序的新程序不构成对原程序的版权侵权。当然了,至于进行还原工程的软件工程师在开发编写新程序时,往往与原来程序的表达即在文字方面存在不同程度的相同或相似,而因此构成侵犯原程序版权是另外一个问题。①直接涉及反向工程的判例美国最早发生在1992年,原告SegaEnterprisesLtd.认为被告Accolade,Inc.在对其游戏程序进行反向工程过程中进行的反汇编和复制行为已经构成了对其程序的版权侵害。被告则认为,对原告程序的反汇编和复制,仅仅是为了能够阅读这些程序,这属于版权法中合理使用的范围。美国加州北部地区联邦法院在一审判决中认定被告侵权成立,原因是其进行反汇编的目的为了能够开发生产出来。
与原告竞争的软件产品,属于商业目的,不属于合理使用。该案上诉后于1992年10月,第九巡回上诉法院推翻了一审判决,认为:为了了解程序设计的思想和功能概念,如果不存在其他方法,则对该程序的目标代码进行反汇编是必需的,即当进行反汇编行为是接触程序中不受版权保护方面的唯一方法时,则这种反汇编属于合理使用。
针对反向工程的有关立法方面,欧共体和俄罗斯都体现出有条件地允许反向工程的立场。1989年1月欧共体委员会向欧共体部长理事会提交的“计算机程序保护指令草案”中明确表明:为在保护版权和维持竞争自由方面求得平衡,允许反向工程,即竞争者可以自由地分析程序中使用的思想、规则或原则,然后在同样的思想、规律和原理的基础上,开发自己的兼容产品。在1991年由部长理事会通过的《计算机程序保护指令》中确立了充分保护合法用户的原则,并在第六条中具体规定,为了获取必要的信息来独立开发出兼容的程序,合法用户可以对程序进行复制和编译,而无须经过权利人同意;但同时也对用户作了限制:(1)只有合法用户或“以合法用户名义”才能进行反向工程;(2)“必要的信息”不能从其他途径轻易取得;(3)只能对生产兼容程序所必要的那部分程序进行反向工程;(4)通过反向工程获得的信息不能用于非生产兼容程序的目的,不能扩散给对开发兼容产品不必要的第三人。也不能用于开发、制作或销售表达形式类似或有其他版权侵权因素的程序;(5)反向工程不得不合理地损害权利人的正当利益或妨碍计算机程序的正常使用。
1993年7月颁布的《俄罗斯联邦著作权法和邻接权法》第25条第(二)、(三)款规定:合法占有电子计算机程序复制件的人,有权不经作者或其他专有权利所有人的同意及不加付报酬而进行复制并将目标码改变为源文本(改变电子计算机程序),或者委托其他人实施这些行为,只要这些必要的行为能够使该合法占有人独立拟制的电子计算机程序与能够同被改变的程序相互配合的其他程序亦相互配合,并且须遵守以下诸项条件:甲、合法占有人以前未能得到为了获取相互配合的性能所必要的信息;乙、只是对被改变的电子计算机程序中为获取相互配合的性能所必需的那些部分,才可以实施上述行为;丙、基于改变电子计算机程序而获得的信息,只可以用来获取独立拟制的电子计算机程序同其他程序相互配合的性能,不能转让给其他人,但为了获取独立拟制的电子计算机程序同其他程序相互配合的性能所必需的情形除外;这样获取的信息还不能用来拟制实质上同被改变的电子计算机程序相同的电子计算机程序,或者用来实施侵犯著作权的其他任何行为。适用本条的原则不得对电子计算机程序或数据库的运行使用带来不合理的损失;不得无理由地损害作者或者电子计算机程序或数据库专有权利的其他所有人的合法利益。”美国于1998年10月颁布的《数字化千年版权法案》在对技术措施法律保护的例外中也专门规定了允许出于反向工程的目的破解技术措施的行为,以及允许为他人实施反向工程而破解技术措施提供技术手段或信息服务。
综上,根据版权法的思想表达二分法原则,无论是从计算机软件技术对兼容性的要求来看,还是从各国版权法对软件反向工程的立法、司法实践的趋势分析,软件反向工程不应构成对软件版权的侵犯。
软件反向工程是否具有合法性,这取决于各国法律的规定,它体现的是立法者的主观意志。但它究竟是否对软件著作权人造成损害却是一个需要认真研究的客观事实。软件著作权分为精神权利和财产权利两部分。与精神权利相联系的是有关软件作品的署名权、发表权,修改权,注释权。
软件复制品的合法持有人在实施反向工程的过程中只要不以自己名义擅自发表他人软件,或者超越法律许可的条件对软件进行修改,是不会对软件著作权人造成精神损害的。与财产权利相关的是有关软件的复制、展示、发行、修改、翻译、注释、许可使用和转让权,因为通过这些使用方式可以使软件著作权人获得经济报酬。
软件复制品的合法持有人如果仅仅为了自身使用的需要,而不是为了经营牟利,那么实施软件反向工程是不可能对软件著作权人造成经济利益的损害的。当然软件在更高层次上的再开发必将加剧软件市场的竞争,对原著作权人造成潜在的经济威胁,但这正是推动人类社会经济发展的原动力.不应视为对软件著作权人利益的损害。
因此对软件实施反向工程与损害软件著作权人利益之间虽然有联系,但不存在必然的因果关系。反向工程是实施仿制的必要条件,但仿制不是反向工程的必然结果。在不少情况下实施反向工程的目的是合理的,我们不应因为反向工程可能会产生侵权的后果而去禁止反向工程本身。
从版权角度看反向工程
由于在反向工程中,不可避免地需要打印出所得到的源代码,以获知程序的设计构思,因此,一些人认为这一过程涉及到对该程序目标代码进行复制和制作演绎作品。而从版权保护的角度看,复制行为和演绎行为都是应当事先得到程序版权人许可的,否则就构成了对程序版权的侵犯。这种观点倾向于禁止反向工程,代表了世界上技术领先的软件大公司的利益。
与上述观点相反,另一些人则认为反向工程中所涉及到的复制行为和演绎行为应属于版权法所允许的“合理使用”,任何人都可以从已发表的作品中获取必要的信息,学习和吸收作品中的思想,独立创作出新的作品,因而没有构成对程序版权的侵犯。这种观点倾向于允许反向工程,实质上代表了中小软件公司的利益,因为这些企业常常需要对大公司的畅销软件进行反向工程,以开发与其相容或功能更强的软件。
这样,从版权保护角度能否给程序的反向工程以合法地位,就成为多年来争论的一个焦点。
邱律师:15915344883,广东长昊律师事务所,软件著作权被侵犯了请联系我们。
我们可帮助您立案起诉、成功维权、减轻损失、争议解决、知识产权管理与保护等全方位高效的法律服务。