公共安全标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111681398.6 (22)申请日 2021.12.31 (71)申请人 北京邮电大 学 地址 100876 北京市海淀区西土城路10号 申请人 国家计算机网络与信息安全管理中 心 (72)发明人 金正平 刘冰 刘祥昆 秦素娟  时忆杰  (74)专利代理 机构 北京风雅颂专利代理有限公 司 11403 专利代理师 孙晓凤 (51)Int.Cl. G06F 8/41(2018.01) G06F 8/20(2018.01) G06N 3/04(2006.01)G06N 3/08(2006.01) G06N 20/10(2019.01) (54)发明名称 面向C++语言的源代码去匿名化方法以及相 关设备 (57)摘要 本申请提供一种面向C++语 言的源代码去匿 名化方法以及相关设备, 包括利用提取的目标源 代码在动态执行时产生的时间动态特征和空间 动态特征对源代码进行相似性检测, 确定所述目 标源代码的作者。 本申请提供的去匿名化方法在 代码动态执行的过程中提取的时间动态特征和 空间动态特征可以表征作者的编程风格, 保证了 源代码去匿名的准确率, 解决了现有代码去匿名 化方法无法向C+ +语言迁移的问题。 权利要求书2页 说明书15页 附图2页 CN 114527986 A 2022.05.24 CN 114527986 A 1.面向C+ +语言的源代码去匿名化方法, 其特 征在于, 包括: 获取目标源代码, 所述目标源代码为C+ +语言代码; 提取所述目标源代码在动态执 行时产生的时间动态特 征和空间动态特 征; 利用学习 模型, 根据 所述时间动态特征和所述空间动态特征对所述目标源代码进行相 似性检测, 确定所述目标源代码的作者。 2.根据权利要求1所述的面向C++源代码的去匿名化方法, 其特征在于, 所述时间动态 特征包括涉及函数数量、 函数平均调用时间、 函数时间占比利用率、 函数调用次数以及程序 运行时间; 所述函数平均调用时间包括: 包含衍生函数调用时间的函数平均调用时间和不包含衍 生函数调用时间的函数平均调用时间。 3.根据权利要求2所述的面向C++源代码的去匿名化方法, 其特征在于, 计算所述涉及 函数数量的特征值包括: 获取所述 目标源代码的函数数量f与所述 目标源代码 中代码行数 l, 所述涉及函数 数量的特 征值NF的计算公式为 计算所述函数时间占比利用率的特征值包括: 获取所述目标源代码的函数执行时间t 与所述目标源代码的总运行时间v, 所述函数时间占比利用率的特征值RF的计算公式为 4.根据权利要求1所述的面向C++源代码的去匿名化方法, 其特征在于, 所述空间动态 特征包括所述目标源代码是否存在内存泄漏、 内存分配次数、 内存释放次数、 平均单次分配 内存大小、 内存释放比率、 申请总内存、 释放总内存以及函数平均使用内存; 响应于所述目标源代码 发生内存泄漏, 所述空间动态特征还包括内存泄漏类型以及泄 露的内存所占比率。 5.根据权利要求1所述的面向C++源代码的去匿名化方法, 其特征在于, 提取所述目标 源代码在动态执 行时产生的时间动态特 征, 包括: 在所述目标源代码执行过程中使用第一性能分析工具并使用第一命令对所述目标源 代码进行编译, 所述编译过程中添加第一选项, 基于所述第一选项, 生成第一可 执行文件; 使用所述第 一性能分析工具并使用第 二命令执行所述第 一可执行文件, 并生成第 一文 本文件; 使用所述第 一性能分析工具并使用第 三命令对所述第 一文本文件进行文本解析, 生成 第一数据文件; 统计并提取 所述第一数据文件中所述目标源代码的时间动态特 征的特征值; 提取所述目标源代码在动态执 行时产生的空间动态特 征, 包括: 在所述目标源代码执行过程中使用第二性能分析工具对所述目标源代码进行编译并 生成第二文本文件; 使用所述第二 性能分析工具对所述第二文本文件进行文本解析, 生成第二数据文件; 使用所述第二性能工具统计并提取所述第二数据文件中所述目标源代码的空间动态 特征的特征值。 6.权利要求1所述的面向C+ +源代码的去匿名化方法, 其特 征在于, 还 包括:权 利 要 求 书 1/2 页 2 CN 114527986 A 2构建初始学习模型; 获取源代码数据库, 所述源代码数据库包括多个不同作者的所写的多个样本源代码; 提取所述样本源代码的样本时间动态特征和样本空间动态特征, 所述初始学习 模型基 于所述样本源代码的样本时间动态特征和样本空间动态特征进行训练, 将训练完成后的所 述初始学习模型作为所述学习模型。 7.根据权利要求6所述的面向C++语言的源代码去匿名化的学习 模型训练方法, 其特征 在于, 所述样本时间动态特征包括样本涉及函数数量、 样 本函数平均调用时间、 样本函数时 间占比利用率、 样本函数调用次数以及样本程序运行时间; 所述函数平均调用时间包括: 包含衍生函数调用时间的函数平均调用时间和不包含衍 生函数调用时间的函数平均调用时间; 计算所述涉及函数数量的特征值包括: 获取所述目标源代码的函数数量f与所述目标 源代码中代码行 数l, 所述涉及函数 数量的特 征值NF的计算公式为 计算所述函数时间占比利用率的特征值包括: 获取所述目标源代码的函数执行时间t 与所述目标源代码的总运行时间v, 所述函数时间占比利用率的特征值RF的计算公式为 所述样本空间动态特征包括所述样本源代码是否存在内存泄漏、 样本内存分配次数、 样本内存释放次数、 样本平均单次分配内存大小、 样本内存释放比率、 样本申请总内存、 样 本释放总内存以及样本函数平均使用内存; 响应于所述样本目标源代码 发生内存泄漏, 所述样本空间动态特征还包括样本内存泄 漏类型以及样本泄 露的内存所占比率。 8.一种面向C+ +源代码的去匿名化装置, 其特 征在于, 包括: 获取模块, 被 配置为获取目标源代码, 所述目标代码为C+ +语言代码; 特征提取模块, 被配置为提取所述目标源代码在动态执行时产生的时间动态特征和空 间动态特 征; 确定模块, 被配置为利用学习模型, 根据所述时间动态特征和所述空间动态特征对所 述目标源代码进行相似性检测, 确定所述目标源代码的作者。 9.一种电子设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计算 机程序, 其特征在于, 所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方 法。 10.一种非暂态计算机可读存储介质, 所述非暂态计算机可读存储介质存储计算机指 令, 其特征在于, 所述计算机指令用于使计算机执 行权利要求1至7任一所述方法。权 利 要 求 书 2/2 页 3 CN 114527986 A 3

.PDF文档 专利 面向C++语言的源代码去匿名化方法以及相关设备

文档预览
中文文档 20 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 面向C++语言的源代码去匿名化方法以及相关设备 第 1 页 专利 面向C++语言的源代码去匿名化方法以及相关设备 第 2 页 专利 面向C++语言的源代码去匿名化方法以及相关设备 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-19 00:20:44上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。