反编译与计算机软件的知识产权保护

                 反编译与计算机软件的知识产权保护

                                             吴国平    北京市隆安律师事务所

本文与反编译的技术有关,但是并非技术帖,尽管如此,本文推荐的读者仍然包括软件项目经理以及软件企业的管理人员。全文5688字,阅读需要约10分钟。

对于律师或者软件公司的法务来讲,谈到软件的知识产权保护,一定会想到版权、专利和商业秘密保护;对于程序员来讲,谈到知识产权的保护,一定会联想到对源代码进行混淆、本地配置文件和基本数据库进行加密、网络传输数据加密、程序结构混排加密、硬件加密等方式。从实用性来讲,某种程度上,上述技术保护方式相较法律保护有更高的实用性,但是随着软件代码的封装交付,软件产品的特殊性决定了计算机程序发行时必须向用户交付经过包装加密和混淆的目标码,尽管如果不借助特殊的反编译工具,人们是无法直接进行阅读获取其内容的。但是尽管针对不同语言以及相应保密方式的不同,反编译后语言的识别率仍然存在种种问题,就如程序员所比拟的,编译的过程就像把生米做成熟饭,而反编译的就是把熟饭变成生米,其中的难度极为形象。但是毫无疑问的是,通过对他人软件的反编译,可以推导出他人的软件产品所使用的架构、原理、算法、处理过程、运行方法等要素,某些特定情况下可能推导出部分源代码(不同的产品代价不同)。

GNU C编译器自诞生至今已经三十余年,每个程序员都非常熟悉,目前已经由最初的只能处理C语言扩展可处理C++、Fortran、Pascal、Objective-C,但是针对C语言的特殊性,针对C语言产品的反汇编一直没有进展,尽管也出现过Dcc、Boomerang、C-Decomplier等专门工具,但是都存在无法识别复杂数据结构、子程序参数和变量名等种种问题,并且会存在大量的数据丢失,可读性很差,如下图示例:

                         

从成本角度分析,如果以抄袭为目的的反编译所花的时间高于自己独立创作的时间,那么律师就没有必要再考虑这种情形下的法律保护问题了,因为再傻的程序员也不会选择这种方式抄袭别人的劳动成果。

律师处理案件中对反编译的认识局限于软件作品的抄袭方式以及如何通过反编译的方法向法官证明两个软件作品存在抄袭,实际上,反编译工具最初的开发目的并非基于单纯的商业目的,或者更进一步,并非出于抄袭的目的。最初的反编译工具的开发目的是为军方和涉密的政府机关审查第三方提供的软件是否存在恶意代码或者未经授权的数据入口。所以最早反编译工具的开发总是和美国海军电子实验室、洛克希德导弹与空间实验室等相关,涉及潜艇射击控制软件系统、战斗机实时训练装置系统等。国内的解放军信息大学也曾经有类似的项目,相信也是出于类似的目的。

反编译技术开发的另外一个应用领域就是兼容性的需求。笔者曾处理一起关于数据兼容性的纠纷,客户通过努力争取到一个政府机构的项目,但是该项目的开发过程中需要对接另外一个政府平台的数据,该平台的技术维护方属于客户的竞争者,因此平台方拒不向客户提供接口文件并设置了种种障碍,因为利益关系复杂,客户的发包方协调数次未果,最终导致客户项目面临延期甚至开发失败的风险。对于客户来讲,项目的完成需要与平台信息的交换或者是对接,在此过程中就需要对于平台软件譬如数据库字段的一些定义进行探究,反编译方法恰好可以完成这一目的,这也是对软件进行反编译以获得兼容性的一个重要的现实需求。因为平台运营方的极力阻挠,反编译方法的合法性一度成为双方争议的焦点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值