软件源代码非公知性司法鉴定的流程解读

2024
03-21 15:39

(部分咨询收费)
直线:139 2652 7105
咨询:0755-2500 0007
咨询:0755 8696 0099
邮件:zhenjie@ipcoo.com
地址:深圳市南山区粤海街道软件产业基地5栋C座1002A

在正式委托计算机软件司法鉴定后,鉴定机构相关专家依照通用鉴定方法来做出非公知性的判断和结论。那么在计算机软件司法鉴定过程中如何去针对性的判定呢?

首先通过对影响源代码非公知性的这些因素的综合分析,判断源代码的非公知性。同时,知识产权司法鉴定机构内部一般存在规范化的鉴定流程,来降低鉴定人的工作强度,加快鉴定的实施。通过这些流程来获得最后的结果。大致如下:
 

计算机软件源代码非公知性司法鉴定操作流程如下:

软件源代码非公知性司法鉴定操作实务解读
 

一、判断源代码是否容易获得。


在不阅读源代码功能含义条件下,理解源代码所应用的技术特征,源代码编译后的目标码运行环境特征,依次逐步深入判断源代码是否为B/S架构软件浏览器(客户端)可获得的源代码、反编译可获得的源代码、自动生成的源代码。如果三种情况均不满足,转而判断源代码是否为常识和行业惯例。
 
如果源代码满足(一)中“为B/S架构软件浏览器(客户端)可获得的源代码”或“为自动生成的源代码”或“为反编译可获得的源代码,并且容易获得目标代码”,继续看源代码的使用情况,即源代码编译的目标码构成的软件系统在销售给客户时,是否有限制客户向非授权用户进行泄露软件相关信息的保密协议。若没有保密协议,说明源代码容易获取,具有公知性。若存在保密协议,转而判断源代码是否为常识和行业惯例。如果满足“为反编译可获得的源代码,但目标代码不易获取”,直接判断源代码是否为常识和行业惯例。

二、判断源代码是否为常识和行业惯例。


在不进行检索的条件下,阅读代码功能含义,根据鉴定人的知识和经验,依次判断源代码是否表达唯一、是否业界通用。满足两个条件中的任一条件,源代码即具有公知性;否则,转而判断源代码是否公开。

 
三、判断源代码是否公开。

鉴定人的知识是有限的,在判断源代码是否公开的问题上,鉴定人以了解技术进展、丰富知识为目的,进行基本的信息检索,是十分必要的。因此,鉴定人在理解源代码含义的条件后应充分利用搜索引擎、开源社区等网络资源,结合自己的知识和经验积累判断源代码是否公开。如果源代码经过这一步的层层验证,那么在司法鉴定实践中一般认为源代码具有非公知性。

具体实务中,根据软件技术的不同可以分为如下几种情况:

 

一、作为特征算法或核心(专有)技术的源代码非公知性


以上影响源代码非公知性的因素分析和鉴定流程,适用于大部分的源代码非公知性鉴定。但在司法鉴定实践中,往往会出现这样的情况:作为软件某个特征算法或核心(专有)技术的部分源代码具有公知性,另一部分则不具有公知性;而源于委托方的鉴定事项则是针对算法或核心技术涉及的整体源代码。针对这种情况,在鉴定实践中应从两个视角考虑,一是局部视角,二是全局视角。

局部视角不考虑代码之间的调用关系、组织结构,依据标准的鉴定流程,针对各个部分的源代码分别给出非公知性的鉴定意见。全局视角考虑代码之间的逻辑调用关系,将这种逻辑调用关系作为源代码非公知性判断依据之一,从整体上给出鉴定意见。
这是因为对术秘密纠纷案件中普遍存在的“某一全部由公知信息组成的技术信息否具有非公知性”这一问题的判断,取决于形成该技术信息的过程中,各公知要素的选取和组合是否蕴含创造性劳动。也就是说,该技术信息并是由随意选取的公知信息进行简单罗列、堆砌而形成,而是需要以专业知识为基础,有目的、有依据地从海量公知信息中选取特定信息,并进行取舍、整合、反复校验,并最终形成可行的技术路线或方案
 
在具体鉴定操作方法上,在考虑源代码之间的逻辑调用关系、组织结构时,首先通过对源代码的阅读,梳理出源代码逻辑关系“鱼骨图”,任何算法或关键技术的源代码都可以归结为代码文件、类和函数的表现形式。算法和关键技术的实现按照一条主线进行;同时,不断地周用各个代码文件、类和函数、构成支线。如果算法或核心技术主线上的源代码具有非公知性,那么整体上可以给出代码非公知性的意见。
 

二、JAVA编程语言源代码非公知鉴定

javA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是Sun Microsystems 公司于1995 年 5月推出的。JAVA程序在JAVA 平台上被编译为字节码格式,然后可以在实现这个JAVA 平台的任何系统中运行。在运行时,JAVA 平台中的JAVA解释器(JVM又称JAVA 虚拟机)对这些字节码进行解释执行。在执行过程中需要的类在连接阶段被载人运行环境中。JAVA语言编写的软件目标代码以.Class格式存在,多个.Class文件可成. Jar文件或者.Zip文件。由于JAVA语言是解释性语言,可以通过反编译工具将. Class文件反编译成.JAVA文件,并且这个反编译过程可以通过软件工具快速地、自动地完成,反编译得到的源代码和原始源代码差异较小,可读性非常高,有时甚至可以得到与原始源代码完全一致的反编译代码。

因此,在司法鉴定实践中,对于JAVA语言源代码的非公知性判断,主要集中在目标代码是否简单容易获得。如果普通用户可以通过简单的方式获取JAVA目标代码,而且这个目标代码没有进行任何的加密或混淆技术处理,那么JAVA源代码就不具有非公知性。
 

三、. NET 平台编程语言源代码非公知鉴定

. NET Framework(.NET 框架)是微软 2002 年 2月推出的跨平台开发框架,也称.NET 平台。.NET 平台下的编程语言有C#-.NET、VB.NET, C+. NET、J#. NET、F#. NET 等。.NET 平台下编程语言的编译、执行与JAVA些类似“. Net 平台软件跨语言鉴定”一节。同样,. NET 平台编程语言编译的目标代码容易反编译,反编译得到的源代码和原始源代码差异较小,可读性非常高,有时甚至可以得到与原始源代码完全一致的反编译代码。因此,对于. NET 平台编程语言源代码非公知性判断,同样集中在目标代码是否简单容易获得。如果普通用户可以通过简单的方式获取目标代码,而且这个目标代码没有进行任何的加密或混淆技术处理,. NET 平台语言源代码就不具有非公知性。

 
四、C/C++编程语言源代码非公知鉴定

C/C++编程语言是应用最为广泛、发展历史最为久远的编程语言之一。与JAVA、。NET 平台编程语言不同,C/C++直接编译为机器码,目标代码不容易被反编译。即便是反编译,也只能进行汇编语言的反编译,即将C/C++目标代码反编译为汇编代码。汇编代码与原始的C/C+源代码差异巨大,可读性较差。因此,对于C/C++语言的源代码非公知性判断,宜采用标准的源代码非公知性判断流程。
 

五、基于KV STUDIO 平台的PLC语言源代码非公知鉴定

V STUDIO是日本KEYENCE 公司的可编程序逻辑控制器(Program-rnable Logic Controller,PLC)  的软件开发平台,使用KV脚本语言编写,它能自动转换为梯形图语言(一种PLC编程语言)执行。基于该平台编写并烧录到硬件设备中的源代码或目标代码的非公知性决定因素是,这些源代码或目标代码是否简单容易地获取。因为PLC目标代码容易实现反编译,易于破坏PLC代码的非公知性。但是,KV STUDIO 平台具有写保护的功能,在烧录过程中,可以控制目标代码不能简单容易地进行拷贝。因此,进行KV STUDIO 平台的PLC语言源代码非公知性鉴定,首先判断目标代码是否进行了写保护,之后再依据上述中的流程进行判断。

 
以源代码非公知性鉴定为支撑的软件商业秘密维权案件迅速增加,在看到这种方式对知识产权保护起到积极作用的同时,也应注意到其对促进场竞争、技术进步、防止知识产权滥用上的弊端。无论是对诉讼的控诉方而言,还是被诉方,源代码非公知性对于整个诉讼起到了至关重要的作用。一旦诉讼成功,对被讼方的处罚力度较大。因此,软件源代码非公知性鉴定,对鉴定人的技术能力、鉴定经验和职业道德都提出了极高的要求。


欢迎您与我们交流。


--the end--
推荐阅读
    热点阅读

全流程服务

我们用八年经验积累服务每一位朋友

软件著作权侵权证据调查

侵权证据调查
固定民事侵权\刑事立案证据

软件源代码司法鉴定

司法鉴定
预鉴定提高鉴定精准度

侵犯计算机软件著作权罪公安报案立案

侵犯著作权罪公安立案
通过公安立案严厉打击刑事犯罪

网站主页
咨询我们