吴国平 北京市隆安律师事务所
人工智能反编译工具的出现,无论是在合法用途还是非法用途上,都大大提升了反编译的效率,这使得侵犯软件公司知识产权的行为变得更加容易。而在没有明确的技术屏障的情况下,软件源代码的反编译可能使得许多软件公司的技术优势和商业机密一夜之间暴露于公众视野中。
2024年,我们在代理广州知识产权法院审理的一起软件著作权侵权案件中,通过UltraEdit以及一些反编译工具将被告以C语言编写的程序进行反编译并作为被告侵权的证据向法院提交,被告律师对反编译的结果提出质疑,并且提交一份最高人民法院的判决书,判决书内载明法官认为C语言是无法进行反编译的,被告试图以最高院的观点否认我们的反编译结果。
因为反编译的过程是可以验证的,所以被告律师的观点,加之那份最高院判决书的内容很容易被推翻。
但是,客观的讲,从二进制码反编译C语言编写的源代码是非常困难的,我们在广州知识产权法院的案例之所以有证明力,是因为反编译的部分代码带有明显的特征,而不是反编译后的代码与我方的源代码一致。从技术角度,二进制码是由编译器将C语言编译而生成的,编译器的优化和转换过程中一些变量名和数据调用关系会被简化或替换,原有的数据结构在二进制码中也无法直接体现,这使得反编译的C语言源代码大量数据丢失(反编译的变量名无法保持一致)。因此,现有的反编译工具即使能从二进制码中还原出一些基本的语句(如变量赋值、条件判断等),我们也无法得到原始的C语言源代码的准确结构和细节。
正是上面的原因,使得C语言编写的程序天生自带“保护软件知识产权”的功能,也是律师在软件侵权中的举证难点。但是随着人工智能的发展,这一切都将面临巨变。
在github上公开的LLM4Decompile项目(GitHub - albertan017/LLM4Decompile: Reverse Engineering: Decompiling Binary Code with Large Language Models)是专门用于反编译的开创性开源大型语言模型,其当前版本支持将 Linux x86_64 二进制文件反编译为可读的 C 源代码。如前文所述,C语言编译器编译的过程会损失大量的数据,LLM4Decompile项目是通过大小在 13 亿到 330 亿个参数之间的模型训练,最终生成兼顾可读性和准确性的源代码。 LLM4Decompile项目实现反编译仍然是以汇编代码 (ASM)作为中介的,但是这不影响其和二进制码之间的对应关系。
LLM4Decompile 项目训练的项目超过40 亿,从而在C语言的反编译取得重大的进展,现有数据显示项目最多可准确反编译 21% 的代码,在理解代码结构和语义方面取得了显著的进步。
2025年2月该项目在github的星级为5.1k,已经超越Bytecode-Viewer(3K)、IDA Pro(Hex-Rays)(3.5K)、RetDec (Reverse Engineering Decompiler),成为关注度仅次于Ghidra(18K)的反编译项目。从下图的代码反编译实际效果来看,LLM4Decompile反编译的变量名、逻辑条件、语义均优于Ghidra。
对比结果来源https://openreview.net/pdf?id=jaZXnb8yeF
目前,像LLM4Decompile和RetDec等工具,虽然在AI反编译领域已经初露锋芒,但整个行业仍然处于一个萌芽到快速发展的阶段,AI技术的引入显然会大幅提升反编译技术的能力。虽然这些工具目前的反编译精度和通过率还有一定的提升空间,但随着AI算法不断进步,它们的应用领域将会进一步扩展,尤其对于一些规模较小的商业软件,它们的代码结构通常较为简单,且相较于大型系统或复杂的软件,其防护措施和混淆技术的使用往往较为薄弱。这使得它们在未来面对像LLM4Decompile这样的大模型反编译技术时,其源代码更容易暴露和被还原。未来C语言编写项目的代码被“盗版”的风险大幅增高,尤其是对于那些缺乏足够反制措施的小型软件可能在反编译后就面临源代码泄露、被恶意复制的风险。这种技术冲击可能导致这些公司无法抵御侵权行为的威胁,甚至使它们在市场上失去竞争力。
对于大型的软件项目来讲,例如芯片的EDA软件,通常涉及高度专业化的技术领域,包含电路设计、时序分析、信号模拟等功能。这些软件的开发依赖于复杂的数学模型和算法,且常常涉及大量的商业秘密和技术积累。由于C语言本身具有高效且接近硬件的特性,许多EDA工具为了提升性能和执行效率,都直接使用C语言编写。因此,这些软件的源代码通常包含了核心技术和独特的设计算法,形成了芯片行业独特的技术壁垒。以目前LLM4Decompile准确反编译21%的水平,针对诸如EDA软件这样复杂项目的反编译尚有很长路的要走,如本文以上反编译的示例,因为反编译过程中无法准确还原变量名和数据调用关系,所以大型软件项目面临的威胁,就目前LLM4Decompile的训练水平来讲,远不及小型商业项目那样紧迫。
但是,上面的结论,因为AI的快速迭代,可能很快即将迎来变数。
传统软件系统知识产权的核心在于保护源代码的创作成果,未来AI反编译技术的不断突破、成熟使得源代码的保护系统不再牢固,但是软件企业原本依赖源代码版权来保护其技术壁垒的努力可能被轻松破解,软件版权的独占性将受到削弱,特别在跨国保护力度不均等的情况下。
如果AI反编译能够无缝、高效地破解软件,知识产权持有者的独占性利益将会大幅度减少,软件的经济价值将面临迅速流失的风险。
尽管AI反编译的发展也为律师在软件侵权诉讼中提供更多的举证可能,但是AI反编译工具一方面可以提供源代码的对比的工具,另外一方面AI反编译工具不仅可能打破现有证据链、还可能让侵权行为变得更加隐蔽。比如,某些反编译工具会生成具有类似执行效果但是表达不同且不易被直接识别的代码,导致侵权行为的追溯变得更加困难。
未来律师的挑战
律师不仅仅是法律服务提供者,越来越多的律师需要成为“技术与法律桥梁”。例如,律师可以与技术团队合作,深入理解AI反编译技术如何运作,提供更加个性化的法律保护措施。
另外,律师可以与技术开发团队共同研究新的源代码保护框架,利用法律工具帮助客户设计能适应AI技术的知识产权保护措施。例如,设计新的合同条款、许可协议、反向工程的防护措施、集成新的反盗版技术、加密技术或AI安全监测系统,为软件企业提供更加有效的知识产权防护。
当然,软件侵权诉讼的举证是我们的特色业务,2020年,我们在IT社区CSDN发表的《反编译与计算机软件的知识产权保护》是针对传统反编译工具的,其中的示例在发表后收到大量程序员的反馈,针对当前的AI反编译工具,也欢迎感兴趣的程序员与我们沟通探讨,我的邮箱为hanswu@188.com。