源程序与目标程序对应性审查

在司法实践中,软件著作权侵权认定遵循 “接触+实质性相似”​ 原则,而源程序与目标程序的对应性审查是判断实质性相似的前提环节。这一审查不仅涉及技术验证,更关乎证据资格证明力的判断,成为连接技术与法律的关键桥梁。根据《软件相似性鉴定实施规范》(SF/Z JD0403001—2014),软件相似性鉴定需依次进行源程序比对、目标程序比对或源程序与目标程序的交叉比对,而所有这些比对方法均建立在程序对应性审查的基础之上。

1 对应性审查的法律价值与技术意义

对应性审查在软件著作权保护体系中具有基础性地位,其法律价值与技术意义体现在多个层面。

1.1 证据链条完整性的保障

在软件著作权侵权案件中,证据链条的完整性直接影响裁判结果。权利人通常持有源程序,而被控侵权方则往往只能获取到目标程序。建立源程序与目标程序之间的对应关系,成为连接侵权证据与权利基础的技术桥梁。 根据司法实践,若无法证明原告主张的源程序与涉案软件目标程序之间存在对应关系,则难以认定权利归属。在“石鸿林诉华仁公司案”中,法院强调了对源程序与目标程序一致性的审查必要性,认为这是认定侵权的前提条件。

1.2 侵权比对准确性的基础

对应性审查为侵权比对提供了正确比较基准。未经对应性审查,直接将原告源程序与被告目标程序进行比对,可能因编译环境、版本差异等因素导致错误结论。 编译一致性问题尤为突出。相同的源代码在不同编译器或配置下生成的目标程序可能存在差异。航空机载软件领域的研究表明,编译器缺陷或配置不当可能导致目标代码与源代码不一致,甚至产生无对应源代码的目标代码。这种不一致性若未在比对前识别,将严重影响鉴定结论的准确性。

2 对应性审查的技术方法与实施流程

对应性审查采用多种技术方法相互印证,形成多层次验证体系。

2.1 静态技术分析

静态分析是对应性审查的基础方法,通过分析程序代码本身特征建立对应关系。 反编译与反汇编技术是最常用的静态分析方法。通过将目标程序反汇编为汇编代码,再反编译为高级语言代码,与原始源程序进行比对。先进的工具如IDA Pro结合Hex-Rays decompiler插件,可有效处理ELF、PE等格式的目标文件,生成易于比对的反编译代码。 控制流图同构判定是另一种重要方法。通过提取源程序与目标程序的控制流图,并进行同构判定,验证两者在程序结构上的一致性。该方法尤其适用于应对代码混淆等抗鉴定行为,因为即使变量名、函数名被修改,程序的控制流程通常保持不变。 表:静态分析方法的比较

方法类型技术原理适用场景局限性
反编译分析将目标代码转换为高级语言代码目标程序完整且反编译工具支持依赖反编译工具准确性
控制流图比对比较程序控制流程结构代码混淆、变量名修改情况无法检测逻辑等价的功能修改
元数据提取分析调试符号、版本信息程序包含调试信息发布版本通常去除调试信息
2.2 动态验证技术

动态验证通过实际执行程序,观察其运行特征,建立源程序与目标程序的对应关系。 定位链技术是一种创新的动态验证方法。通过在源程序和目标程序中插入相同的定位链(一组具有特定顺序的定位点),比较运行过程中产生的特征码序列。若两程序产生的特征码序列一致,则表明其功能一致。 哈希值验证是基础性方法。若源程序编译后产生的目标程序哈希值与涉案目标程序哈希值完全一致,可直接认定对应关系。但此法要求编译环境完全一致,实践中难以满足。

2.3 文档与元数据分析

编译文档配置记录等元数据是证明对应关系的辅助证据。持续集成系统生成的编译日志、版本控制系统中的标签信息等,均可作为对应性审查的参考依据。 在航空机载软件领域,DO-178C标准要求保留完整的编译工具链信息、配置参数及编译环境描述,为源程序与目标程序的对应性审查提供制度保障。

3 不同情境下的审查要点与挑战

对应性审查需根据案件具体情况调整重点,应对各种技术挑战。

3.1 商业软件与定制化系统

对于商业软件,通常存在多版本多模块的特点,增加了对应性审查的复杂性。需准确识别涉案软件的具体版本,并确认源程序与目标程序的版本对应关系。 对于定制化系统,如机载软件,需关注交叉编译目标硬件依赖等特殊问题。航空机载软件的研究表明,需分析源代码使用的CPU信息,配置逆向分析工具,并根据内存分配文件进行分段识别。

3.2 开源软件与混合开发

开源软件普遍使用第三方库,对应性审查需区分原创代码与开源组件。根据《软件相似性鉴定实施规范》,需排除公共程序库文件、第三方库文件等非原创性内容后,再进行比对。 对于混合开发模式,需识别不同许可条款下的代码组件,避免因许可证兼容性问题导致对应关系判断错误。实践中,可采用代码成分分析工具识别开源组件及其版本信息。

3.3 对抗性技术应对

随着侵权手段升级,对应性审查需应对各种抗鉴定技术代码混淆是常见抗鉴定技术,通过修改变量名、函数名,改变代码结构等方式,增加分析难度。对此,可借助控制流分析、数据流分析等技术,识别混淆后代码的核心逻辑。 多态代码技术生成功能相同但表现形式不同的代码,对传统比对方法构成挑战。需采用语义等价判定方法,从功能层面而非代码形式层面进行对应性审查。

4 对应性审查的证据效力与司法认定

对应性审查结果作为技术证据,需符合证据规则要求,其证明力受多种因素影响。

4.1 证据资格要件

对应性审查结果作为鉴定意见电子数据,需满足合法性、真实性、关联性要件。 合法性要求审查程序符合技术规范。根据《软件相似性鉴定实施规范》,需记录检材和样本情况,进行唯一性编号,并计算哈希值确保证据完整性。 真实性需通过数字签名完整性校验等技术保障。审查过程应全程记录,形成可追溯的技术报告。 关联性需明确审查对象与案件争议焦点的联系。对应性审查报告应直接回应侵权认定中的关键技术问题。

4.2 证明力判断因素

对应性审查结果的证明力取决于技术路径的可靠性结论的确定性多方法印证的结论具有更高证明力。若静态分析与动态验证均得出相同结论,可显著增强证据的可信度。控制流图同构定位链特征码一致的双重验证,可形成强有力的证据链。 反向工程难度影响证明力。若目标程序经过高度混淆,但仍能通过技术手段建立对应关系,则该证据具有较强证明力。

5 完善对应性审查的制度建议

对应性审查技术体系需不断完善,以适应技术发展与司法实践需求。

5.1 技术标准化

推动对应性审查技术标准的制定与完善,明确不同场景下的审查方法、流程与判断标准。现行《软件相似性鉴定实施规范》需进一步细化对应性审查的具体技术要求。 工具认证是提高审查结果可靠性的重要途径。对反编译工具、代码分析工具进行认证,确保其输出结果的科学性与可靠性。

5.2 专业队伍培养

对应性审查需要复合型人才,兼具软件技术与法律知识。加强司法鉴定人培训,提高其应对技术挑战的能力。 技术调查官制度可引入对应性审查环节。由法院指派技术专家参与审查过程,提供专业技术支持。

结语

源程序与目标程序的对应性审查是软件著作权侵权认定的技术基石,直接关系到案件审理的公正与效率。随着软件技术不断发展,对应性审查面临新挑战与机遇。 未来,人工智能技术在代码分析中的应用将提高对应性审查的自动化水平与准确性。区块链等分布式账本技术可为程序对应关系提供不可篡改的存证服务。 对于司法实践而言,构建完善的对应性审查体系,需技术法律标准的协同发展。只有确保对应性审查的科学性与规范性,才能为软件著作权保护提供坚实的技术支撑,促进软件产业健康发展。