二、源代码的“再使用”和“逆向工程”——侵犯软件知识产权行为的新形式随着软件开放源代码以及软件新的市场竞争形式的出现,传统侵犯软件知识产权的行为方式也发生了很大的变化。目前针对软件产品的侵权行为主要包括复制源代码和“逆向工程”(reverse engineering)。[11]
由于大部分软件都绑定在了硬件上,用户在购买硬件的同时事实上已经支付了相应软件的费用,包括之后软件的升级费用。因此以牟利为目的大规模复制操作系统软件的传统盗版行为,如今已不再属于威胁软件产品的主要侵权行为了。[12]但随着软件源代码的出现,个人用户复制源代码的行为逐渐成了如今软件产品主要的侵权行为方式。尽管社会,包括很多软件开发企业已经认可了对源代码的“再使用”这种侵权方式。软件开发中,一些企业直接用他人的源代码主要基于两个目的:其一,现有软件已包含有诸如需求扑捉和解决,以及设计测试等软件编写开发的重要内容,复制源代码在开发新的软件时可以节省诸多的投入和费用;其二,现有软件的技术一般在实践中都已经比较成熟,而且软件自身的漏洞和不足也比较少,因此直接复制这些源代码就可以充分利用该软件业已成熟的技术和优势。[13]比如目前被广泛使用的编程语言 C + + ,其实该语言就是建立在 C 语言的基础之上,因为该语言基本已解决了人们遇到的很多实际问题。由此可见,这种实际情况影响着人们对重复使用他人源代码的基本态度。同时,受开放源代码运动的影响,不同社会对“再使用”源代码的理解也存在差异。[14]因此,持续不断地使用源代码中开创性解决问题方法,以及编写代码成熟的技术在软件开发行业就显得非常普遍。由此可见,与直接拷贝操作系统这种传统侵犯知识产权行为不同,通过“再使用”源代码成熟的技术以及开创性解决问题的方法,这虽被现实地接受,但其实质上构成了对软件产品知识产权的侵犯。
针对复制源代码的行为,尽管软件开发商都能容忍这种实质性的侵权行为,但他们却并不希望源代码被大规模地复制。[15]现实中,这种大量复制源代码的侵犯知识产权行为主要发生在个人用户这个范围内。因为他们认为有些软件过于昂贵,而且开发这些软件的企业都是垄断性行业。这种态度决定了年轻人就像对待盗版音乐一样毫无顾忌地通过复制源代码的形式大肆使用盗版软件。[16]这种情况目前并非仅发生在中国,即便在对知识产权保护观念深入人心的欧美国家,现实中大量用户并没有遵守知识产权的法律规定,大量的商业盗版软件在这些国家的个人或企业的设备上运行着。[17]因此,对软件源代码“再使用”的行为逐渐成为当今主要的侵犯软件知识产权的行为。
除“再使用”源代码这种侵犯软件知识产权的行为以外,另一个主要的行为就是通过“逆向工程”(reverse engineering)对软件的侵权了。[18]因为在绝大多数国家,对程序代码的计算并不受法律保护,他们主要认为这些代码本质上就是一种数学的计算而已。[19]但如果某软件开发企业的竞争对手从相关程序中推导出该程序代码的计算方式的话,那么该竞争对手完全可以设计出与对方竞争的产品来,但其行为却并不构成对对方知识产权的侵犯。而且很多情况下,这种“逆向工程”甚至是直接对某个正在运行程序的代码进行拆卸或反编译,这就造成在软件社区系统内,这些通过“逆向工程”被破解的软件源代码可以在计算机之间任意传播。而且现实中,软件开发者在没有任何合作的情况下,仅通过“逆向工程”就可以从软件竞争者那里获得文件编制的相关内容,但这种情况反而不构成侵权。[20]尽管这样,软件开发技术人员完全可以从获得的文件编制内容中推出该软件是如何运行的,并进而编制出更具有竞争性的软件产品,因为详细的软件编制文件从某种程度上就是软件程序的源代码。因而软件开发过程中,如果能在他人开发软件基础上对程序进行合理优化或者功能扩展,那么该软件产品无疑就会更具竞争优势,而且诸如 BSD 这类授权开放源系统也是这样做的,这也从另一个方面推动了这种实质上侵犯软件知识产权行为的泛滥。[21]