ShieldedCode: Learning Robust Representations for Virtual Machine Protected Code
作者: Mingqiao Mo, Yunlong Tan, Hao Zhang, Heng Zhang, Yangfan He
分类: cs.CL
发布日期: 2026-01-28
备注: Accepted to ICLR 2026
💡 一句话要点
ShieldedCode:学习虚拟机保护代码的鲁棒表示,提升软件防御能力
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 虚拟机保护 代码混淆 鲁棒表示学习 对比学习 软件安全
📋 核心要点
- 传统虚拟机保护(VMP)依赖于人工设计的规则,成本高且易受自动化分析攻击,缺乏对保护代码的鲁棒表示。
- ShieldedCode通过构建大规模配对数据集,并结合分层依赖建模和对比学习,学习VMP保护代码的鲁棒表示。
- 实验表明,ShieldedCode显著提高了各种保护级别的鲁棒性,并在代码生成和二进制相似性检测任务上优于现有方法。
📝 摘要(中文)
大型语言模型(LLM)在代码生成方面取得了显著进展,但其在软件保护方面的潜力尚未得到充分挖掘。逆向工程仍然威胁着软件安全,而传统的虚拟机保护(VMP)依赖于刚性的、基于规则的转换,这些转换设计成本高昂且容易受到自动化分析的攻击。本文提出了第一个保护感知框架ShieldedCode,用于学习VMP保护代码的鲁棒表示。该方法构建了大规模的源代码和规范化VM实现配对数据集,并引入了指令内、前置指令和指令间的分层依赖建模。通过联合优化语言建模与功能感知和保护感知的对比目标,来捕获语义等价性和保护强度。为了进一步评估弹性,我们提出了一个保护有效性优化任务,该任务量化并排序来自相同源的不同VM变体。结合两阶段的持续预训练和微调流程,该方法使模型能够生成、比较和推理受保护的代码。大量实验表明,该框架显著提高了各种保护级别的鲁棒性,为基于学习的软件防御开辟了新的研究方向。ShieldedCode在L0 VM代码生成上实现了26.95%的Pass@1,而GPT-4o为22.58%,并且二进制相似性检测的Recall@1比jTrans等最先进的方法提高了10%。
🔬 方法详解
问题定义:论文旨在解决软件保护中,传统虚拟机保护(VMP)方法依赖人工规则、易受攻击的问题。现有方法无法有效学习受保护代码的鲁棒表示,导致逆向工程威胁依然存在。
核心思路:论文的核心思路是利用大型语言模型(LLM)学习VMP保护代码的鲁棒表示,从而提升软件防御能力。通过构建大规模配对数据集,并结合功能感知和保护感知的对比学习,使模型能够理解和生成受保护的代码。
技术框架:ShieldedCode框架包含以下主要阶段:1) 构建大规模源代码和规范化VM实现配对数据集;2) 引入指令内、前置指令和指令间的分层依赖建模;3) 联合优化语言建模与功能感知和保护感知的对比目标;4) 提出保护有效性优化任务,量化和排序不同VM变体;5) 两阶段的持续预训练和微调流程。
关键创新:最重要的技术创新点在于提出了一个保护感知的学习框架,能够学习VMP保护代码的鲁棒表示。与传统方法不同,ShieldedCode不依赖于人工设计的规则,而是通过数据驱动的方式学习保护策略。此外,分层依赖建模和对比学习的结合,能够更好地捕获代码的语义等价性和保护强度。
关键设计:论文的关键设计包括:1) 构建大规模配对数据集,保证数据的质量和多样性;2) 设计分层依赖建模,考虑指令之间的上下文关系;3) 设计功能感知和保护感知的对比损失函数,使模型能够区分语义等价但保护强度不同的代码;4) 提出保护有效性优化任务,评估不同VM变体的保护效果;5) 采用两阶段的持续预训练和微调流程,提升模型的泛化能力。
🖼️ 关键图片
📊 实验亮点
ShieldedCode在L0 VM代码生成上实现了26.95%的Pass@1,相比GPT-4o的22.58%有显著提升。在二进制相似性检测任务中,ShieldedCode的Recall@1比jTrans等最先进的方法提高了10%。这些实验结果表明,ShieldedCode能够有效学习VMP保护代码的鲁棒表示,并在多个任务上优于现有方法。
🎯 应用场景
ShieldedCode可应用于软件安全领域,用于增强软件的抗逆向工程能力。该方法可以自动生成和评估不同保护级别的VM代码,帮助开发者选择最佳的保护策略。此外,ShieldedCode还可以用于恶意代码检测和分析,识别经过VMP保护的恶意软件,并提升分析效率。未来,该研究有望推动基于学习的软件防御技术的发展。
📄 摘要(原文)
Large language models (LLMs) have achieved remarkable progress in code generation, yet their potential for software protection remains largely untapped. Reverse engineering continues to threaten software security, while traditional virtual machine protection (VMP) relies on rigid, rule-based transformations that are costly to design and vulnerable to automated analysis. In this work, we present the first protection-aware framework that learns robust representations of VMP-protected code. Our approach builds large-scale paired datasets of source code and normalized VM implementations, and introduces hierarchical dependency modeling at intra-, preceding-, and inter-instruction levels. We jointly optimize language modeling with functionality-aware and protection-aware contrastive objectives to capture both semantic equivalence and protection strength. To further assess resilience, we propose a protection effectiveness optimization task that quantifies and ranks different VM variants derived from the same source. Coupled with a two-stage continual pre-training and fine-tuning pipeline, our method enables models to generate, compare, and reason over protected code. Extensive experiments show that our framework significantly improves robustness across diverse protection levels, opening a new research direction for learning-based software defense. In this work, we present ShieldedCode, the first protection-aware framework that learns robust representations of VMP-protected code. Our method achieves 26.95% Pass@1 on L0 VM code generation compared to 22.58% for GPT-4o., and improves binary similarity detection Recall@1 by 10% over state of art methods like jTrans.