返回
Obfuscated Clone Search in JavaScript based on Reinforcement Subsequence Learning
DOI:10.1145/3711903.png)
摘要
En 中文
寻找相似代码对于软件工程、知识产权保护和安全至关重要,而对手越来越常见的一种规避相似代码检测的方法是通过混淆技术,例如代码转换和将需要隐藏的代码分散在长序列中。将代码隔得足够远对具有局部特征(如n-gram)或注意力机制的解决方案提出了特定挑战,因为代码部分超出了局部上下文窗口。我们介绍了一种称为“Cybertron”的神经网络解决方案模式,该模式通过利用强化学习训练代码抽象和总结功能来解决此问题;这种方式将任意长度的代码转换为固定长度的实向量,并针对相似性搜索进行了优化。设计的关键在于智能选择代码的重要元素并进行抽象,以在最小化语法特征信息的同时保留语义功能。我们在一个包含三个挑战基准的混淆JavaScript上评估了该方法,JavaScript是一种常见的混淆脚本语言,其中代码混合是一个日益增长的挑战。评估表明,我们的方法能够以78%的AUC识别大型脚本中的混淆代码,这比当前最先进的序列模型提高了7%至35%。
Keyword:
code similarity
code obfuscation
neural networks
reinforcement learning
semantic abstraction

