计算机软件源代码司法鉴定中的身份识别方法

第三方分享代码
admin 3个月前 (11-16) 1T7twf 3116 0

原标题:计算机软件源代码司法鉴定中的身份识别方法

软件源代码身份的识别方法

(a)识别前的源代码预处理

源代码预处理的目的是统一源代码的编写格式,以便在执行代码时,被比较双方的源代码统计标准是一致的。预处理主要包括以下五个方面。

1。删除第三方源代码

这里第三方的源代码指的是不是双方的原始代码。这些代码可能来自开源软件、教科书和其他与硬件匹配的企业实例源代码。这些代码通常可以通过注释内容来区分,例如代码文件的版权信息和开发者信息。在识别源代码身份之前,这些代码文件或代码片段应该与双方的原始代码区分开来。如果不参加比较或不参加比较,应在比较结果统计和鉴定意见中注明。

2。确定文件对应关系

确定源代码文件的对应关系是源代码比较的前提。任何软件的源代码都以文件的形式存在,并以文件夹的形式组织。根据代码文件的名称和代码的逻辑功能,确定待比较双方源代码之间的对应关系,然后进行源代码比较,这是科学有效的源代码比较的基础。随着软件功能的不断完善和软件源代码规模的不断扩大,对应关系的确定已经成为源代码比较中一个基本而费时费力的重要环节。

3。空白行和注释行的标准化处理

严格来说,空行和注释行不是源代码的一部分。当源代码编译成目标代码时,它不包含在目标代码中。因此,根据等价原则,对待比较的双方源代码的空行和注释行进行预处理,在大多数情况下,双方的空行和注释行都被删除。也有例外,比如被比较双方的源代码基本相同,甚至注释行或空行的位置也相同。这种现象从侧面反映出被比较双方的源代码是相同的,获得相同意见的依据与空行和注释行的处理没有直接关系。

4。标准化源代码行提要的格式

每种计算机编程语言都有自己特定的换行规则。程序员在编写代码换行时遵循这些规则。然而,在评估实践中,根据传统的换行方式,经常会出现每行代码很短的情况。例如,连续声明多个变量占用了大量的行。为了方便起见,程序员在一行中编写传统的多行代码。这种情况下比较源代码相同,有必要统一双方的换行规则,以获得正确的行数结果。

5。重组代码顺序或以函数为单位拆分源代码文件

由上述操作预处理的代码在代码组织结构中仍然具有不一致的物理序列。例如,如果双方代码文件中相同函数的顺序不一致,多个函数将导致函数位置交叉的情况。如果用超越比较(Beyond Comparison)进行机械比较,比较结果显然不够准确,这也是真实识别案例中最常见的识别偏差现象之一。评估采用的处理方法是增加源代码行号,根据函数的对应关系重新组织代码文件,或者以函数为单位重新拆分源代码文件。对于大量代码文件和大量代码的情况,前者更方便。对于代码文件数量少且每个文件的代码相对较大的情况,如嵌入式软件的代码,采用后一种方法更为方便。

(二)单一源代码文件的身份比较

展开全文

1.源代码的形式比较

大多数由单一源代码文件组成的软件系统都存在于嵌入式软件中。首先进行源代码的形式比较,即在预处理源代码文件的标准空白行和注释行以及标准源代码行馈送格式的基础上,应用Beyond Comparison比较双方的源代码,并计算相同的代码比例。

形式比较是在不考虑源代码功能的情况下进行的。一般来说,这是评估人员为了解双方代码相似性的一般情况而采用的一种尝试性比较。因此,只有在比较结果比例相同的情况下,才能直接给出身份的识别意义;否则,有必要对源代码进行功能比较。

2.源代码的功能比较

功能比较需要进一步的代码预处理。基本比较过程如下。(1)标记行号。(2)确定功能对应关系,并根据对应关系调整代码顺序。(3)读取源代码,并将代码函数与函数进行比较。

这里提到的代码功能主要基于代码本身的逻辑功能,同时考虑到它的业务功能。代码的功能比较可以逐行进行,也可以逐功能进行。比较结果通常分为相同、基本相同(或基本相似)和不同。其中,以代码重构的方式,基本相同(或基本相似)的代码适用于源代码修改。

3.统计比较结果,绘制统计数据表

(3)源代码文件集合身份比较

双方源代码的比较由多种计算机语言设计,包含多种类型和多个源代码文件。在确定功能模块对应关系、代码文件对应关系、代码预处理和单个文件比较的基础上,为了反映比较结果的总体情况,应对比较结果进行总体层面的统计分析。

(4)评价意见的表达

源代码身份验证的比较结果应反映在最终验证意见中。然而,由于软件认证案例的复杂性,大多数认证案例很难直接给出相同或不同的结论。

1.单一源代码文件身份评估意见的表达

目前,国内评估机构在表达源代码身份评估意见时经常使用相同、不同、基本相同、基本相同和基本相似的表达方式。其中,相同与不同相对清晰。然而,对于基本相同、基本相同和基本相似的内容,甚至是更有争议的内容,行业中没有统一的标准。在所涉及的评估案例中,评估意见是基于以下理解表达的:“基本相同”侧重于代码量表,可以理解为双方代码行相同且基本相同的较大比例;“基本相同”关注代码质量,在从双方的代码中排除代码重建因素后,可以理解为相同的代码。实质相似性类似于实质相似性的表达,在实践中并没有严格区分。

2.源代码文件集身份评估意见的表达

相同、不同、基本相同、基本相同和基本相似的表达仍然广泛用于源代码文件集的身份识别。只有在这种情况下,对代码文件数量的基本上相同的强调才能被理解为相同或基本上相同的代码文件数量所占的比例高于双方的文件数量。从代码集的角度考虑了实质相似性和实质相似性。

对于鉴定意见,应根据案件性质、法典内容和比较结果尽可能清晰地表述,最终形成完整的司法鉴定报告。

专注于软件版权纠纷解决和犯罪研究,请搜索[/S2/][/S2/IPCOO软件保护中心/];回到搜狐看更多

负责任的编辑:

相关推荐

网友评论

  • (*)

最新评论