论计算机软件反向工程的合法性

2019-03-28 15:04
福建质量管理 2019年22期
关键词:源代码商业秘密代码

(山东工商学院计算机学院 山东 烟台 264005)

计算机软件反向工程是软件市场竞争过程的衍生问题,其自诞生之日起就争议不断,版权人认为反向工程是腐蚀版权的蠹虫,而从事反向工程开发的人却将其视为打破技术垄断、促进软件进步的正当手段。反向工程到底是否具有正当性、是否应当合法,究其本质还是软件的版权人与反向工程开发者的利益博弈。

一、计算机软件反向工程的界定

反向工程,是相对于计算机软件开发的正向工程而言的。软件的正向开发过程是一个创造性的活动,是指在对市场与客户需求在充分调研的基础上,通过创造性的分析、设计、测试等手段完成一个新的软件。[1]而在软件开发的过程中,开发人员需要以JAVA、C等高级语言进行程序的编写,由此形成可供程序开发者阅读的源代码;源代码通过计算机的读取或运行进而形成二进制的目标代码,这种机器语言表现在显示输出端口就是可执行的程序。对正向软件开发流程做逆向的推导,从一个既有软件目标代码反向推导出该软件的源代码的过程就被称之为反向工程,又被称为逆向工程或反向编译。通过反向工程,可以获得他人软件的算法、流程与组织结构等。虽然反向工程在知识产权领域具有重要的理论和实践意义,但是我国的知识产权立法却没有给出反向工程的定义,但我国最高人民法院在关于反不正当竞争案件的司法解释中将反向工程定义为“通过技术手段对从公开渠道取得的产品进行拆卸、测绘、分析等而获得该产品的有关技术信息”①。

软件技术是一项应用性很强的技术,新软件的开发过程中往往会分析、借鉴他人已经开发的软件,这是软件产业界十分常见的。反向工程不是一被应用于软件领域就引发法律争议的,至少在20世纪80年代前这类争议极少发生,主要是因为当时软件业并未形成一个利润巨大的产业,对其进行反向工程也未必会对软件权利人的利益造成影响。[2]

二、反向工程违法性观点综述

上世纪80年代之后,随着计算机逐渐进入普通人的生活,软件市场也具有更多的利润,产权保护或者技术壁垒就成为了软件产权人攫取更多利润的一种方式。实施人往往通过反向破解之后进而通过仿制等手段进行不正当竞争,使软件发明人的利润受到影响,许多学者由此反对反向工程,认为这是一种技术剽窃的方式,理由如下:第一,在反向工程实施过程中,会对他人的目标代码进行获取、分析、复制,在未经权利人同意的情况下即构成侵权。第二,软件信息与版权人的经济利益直接挂钩。软件开发的过程会消耗大量的人力、物力及时间,一个即成的软件中凝聚着大量的无差别劳动,法律应当保护其版权使其在市场中收回成本。反向工程中对代码的复制虽然也会消耗成本,但与软件开发相比仍然具有成本优势,这就使得通过反向工程而破解的软件在销售成本上与原软件相比更具优势,会直接以更低的价格将原软件驱逐出市场,直接侵害软件版权人的经济利益。第三,一般认为反向工程的成本极低,在以低成本的形式就能获得既有成果的情况下理性人会放弃自足研发,从而诱发道德风险。如果允许反向工程的存在,无异于允许以剽窃的方式获得别人的版权,从成本—收益的分析角度来讲,剽窃的成本更低,长此以往,越来越多的软件工程师会从独创性工作转向反向工程,不愿意进行自主研发工作,这对于软件行业的发展是十分不利的。第四,允许反向工程会浪费更多的社会资源。如果说软件开发过程是运用社会资源进行软件独创的过程,那反向工程就是运用各种资源进行复制的过程,由于目标软件的存在已经能够满足计算机市场和软件市场的需求,因此再进行反向破解无异于是重复劳动,除了能满足反向破解者个人的利益之外并没有新的社会效益,这是与效益原则相违背的。[3]

三、软件反向工程的合法性界定

尽管如此,还是有许多人支持反向工程的存在。反向工程不仅仅涉及知识产权保护,还涉及竞争、商业秘密保护,不仅仅是版权人个人利益问题,也应当加入社会公共利益的考量,因此认定反向工程合法与否,必须从这些方面综合考虑。就目前知识产权理论发展的趋势与现实意义来看,应当认定反向工程尤其合理性并赋予其法律上的认可,理由如下。

首先,反向工程不是简单的软件信息剽窃,而是对现有成果的合理运用。一般而言反向工程需要经过获取目标代码、将目标码转换成ASCII码和Hex码、根据CPU指令进行反向编译、汇编代码得出源代码等步骤,单是获得目标代码的工作量就非常巨大,例如8行代码的小程序对应着着50页的二进制代码,而普通50MB左右的程序其二进制代码达到62500行,而查找CPU指令的意义也需要工作人员根据经验做大量的判断。因此反向工程虽为对目标代码的复制,但这种复制并不像我们想象中那么轻而易举,也有智力与财力的投入,这与剽窃完全不同。反向工程可以视为对商业秘密的一种限制,其设置目的综合考虑了反向工程没有在先保密合同的约定与实施人付出的投入,也防止在先发明人滥用权利造成垄断。

其次,反向工程可以促进技术进步。对于理性的发明人而言,可以在商业秘密保护与专利保护两种形式中进行选择,但专利技术与商业秘密相比,突出的特征是通过对技术的公开换的暂时的技术垄断,也就是说对于专利产品而言没有必要实施反向工程,因为技术是公开的。若采用商业秘密的形式保护软件产品,则无需主动公开该技术信息,但因此获得的法律保护不应当比专利保护水平更高。

再次,反向工程可以节约研发成本。所谓研发,是指在既有的成就的基础上的升华和改进,新技术的发明亦是如此。如果在研发的过程中不允许创造者把握甚至借鉴他人的成果,每次都是从零开始,那么研发人都会重复过去研发者的老路,相当于同样的或者类似的成果被研发了两次,而这两次都是要消耗大量的社会资源的,这会使对这软件的过分产权保护变为软件业技术进步的黑洞,会使社会的创造力大打折扣。反向工程的意义在于通过对软件的逆向推导使软件开发者掌握现有的创作思想,避免重复研发或者无效研发,从而节约成本。这里值得注意的是,反向工程的开展并非没有成本,并非不消耗资源,在许多情况下这种消耗还非常巨大,但是相对于从无到有的创造,这种成本的消耗还是可以接受的,并不会产生浪费资源的效果。

最后,反向工程可以降低软件价格,保护消费者权利。软件开发过程中所投入的各种成本会在软件的销售中进行摊销,软件产权人也在这个范围内能够以较高的价格销售软件,并通过商业秘密或者专利的保护来阻止其他竞业者来抢占市场和利润。但是对于软件著作权的保护很可能形成知识产权的壁垒进而形成垄断,而垄断天生会排斥竞争并通过高额的垄断价格攫取更多的利润,消费者由于难以从相关市场获得替代产品,只能被迫接受垄断高价。而破除垄断高价、保护消费者权益的前提就是破除垄断,即通过合理的反向工程形成相关软件的替代品,良好的市场竞争秩序在保护消费者的同时会促进行业的更新和发展。

【注释】

①参见《最高人民法院关于审理不正当竞争民事案件应用法律若干问题的解释》第12条第2款。

猜你喜欢
源代码商业秘密代码
基于TXL的源代码插桩技术研究
创世代码
创世代码
创世代码
创世代码
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
美国《保护商业秘密法》的立法评价
侵犯商业秘密罪中“重大损失”的司法判定——以60个案例为样本
揭秘龙湖产品“源代码”