【技术实现步骤摘要】
一种基于知识迁移的二进制代码摘要生成方法及系统
[0001]本专利技术涉及二进制代码安全领域,特别涉及一种二进制
‑
源代码匹配和知识迁移的二进制代码快速准确生成代码摘要的方法及系统。
技术介绍
[0002]代码摘要是代码对应的自然语言描述,能帮助开发和维护人员快速阅读和理解现有代码。目前用于代码摘要生成的主流模型结构是encoder
‑
decoder based attention,使用编码器将提取的代码特征编码成状态向量,使用注意力机制将编码器输出的若干状态向量聚合成一个状态向量,使用解码器将聚合的状态向量解码成一个个单词输出,最终得到一句摘要用来描述输入代码的功能。二进制代码摘要为二进制执行的功能提供了高级自然语言描述,有利于软件维护、二进制分类和检索。二进制代码由于阅读性较差,且同一源码在不同编译环境下编译得到二进制具有较大差异,使得二进制代码分类、摘要生成具有较大难度。目前代码摘要领域研究主要集中在源代码生成摘要,对二进制代码生成摘要的研究较少。
[0003]二进制通常由程 ...
【技术保护点】
【技术特征摘要】
1.一种基于知识迁移的二进制代码摘要生成方法,其特征在于,包括:步骤1、对输入的二进制文件进行解析,得到二进制代码特征;步骤2、基于二进制代码特征对二进制代码进行相似性检测,在二进制代码
‑
源代码关联库中获取相似的二进制代码所对应的源代码,再获取源代码特征;步骤3、将二进制代码和源代码特征进行编码,得到对应的特征向量;步骤4、将二进制代码的特征向量和源代码的特征向量分别输入到预训练的二进制代码摘要生成模型中,生成二进制代码摘要文本;其中,二进制代码摘要生成模型包括编码器与解码器,编码器包括源代码特征编码模块与二进制代码特征编码模块,源代码特征编码模块由源代码摘要生成模型的编码器迁移得到。2.根据权利要求1所述的基于知识迁移的二进制代码摘要生成方法,其特征在于,所述步骤2中,采用二进制相似性检测模型进行检测,其中,二进制相似性检测模型训练及检测方法为:步骤2.1.1、采用两个完全相同的全连接神经网络组成一个孪生架构检测模型,两个神经网络采用相同的超参数并共享参数;步骤2.1.2、采用有监督的利用二进制分析工具提取两个二进制代码函数控制流程图CFG的中间表示esil字符,用于检测模型输入;检测模型对esil字符进行分词和词嵌入,获得单词的向量表示,再输入得到神经网络中,完成模型训练;步骤2.1.3、输出两个语义特征向量,对两个语义特征向量进行余弦相似度计算,判断两个二进制代码是否相似,通过反向传播和随机梯度下降的方法更新神经网络参数。3.根据权利要求1或2所述的基于知识迁移的二进制代码摘要生成方法,其特征在于,所述步骤2中,二进制代码
‑
源代码关联库的建立方法为:步骤2.2.1、获取大规模的开源项目源代码,采用debug模式编译源代码,得到对应的二进制文件;步骤2.2.2、对二进制文件进行解析,得到二进制函数级信息;步骤2.2.3、基于二进制函数信息构建<函数源码,二进制代码>数据集,从而构建函数级二进制
‑
源代码关联库。4.根据权利要求3所述的基于知识迁移的二进制代码摘要生成方法,其特征在于,所述步骤4中,二进制代码摘要生成模型获取方法为:步骤4.1、提取出函数源码的功能描述文本,将其作为函数源码摘要,构建由<函数源码,二进制代码,摘要>组成的训练数据集;步骤4.2、基于encoder
‑
decoder based attention模型,分别建立源代码摘要生成模型和二进制代码摘要模型,两个模型编码器与解码器结构相同;步骤4.3、从训练数据集中提取由<函数源码,摘要>组成的数据集,完成源代码摘要生成模型的训练;步骤4.4、将训练好的源代码...
【专利技术属性】
技术研发人员:王炳文,毛得明,陈剑锋,饶志宏,孙治,韩烨,赵童,
申请(专利权)人:中国电子科技集团公司第三十研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。