-
公开(公告)号:CN114047917B
公开(公告)日:2025-03-14
申请号:CN202111113829.9
申请日:2021-09-23
Applicant: 中国科学院信息工程研究所
IPC: G06F8/41 , G06F8/71 , G06N20/20 , G06N3/042 , G06N5/01 , G06F18/23 , G06F18/2431 , G06F18/23213
Abstract: 本发明公开了一种基于机器学习的编译相关文件识别方法及装置,包括:基于版本的向量表示,对一开源库的所有版本进行聚类;对每一类中的各版本进行编译,并基于被成功编译版本的相应源文件信息进行机器学习训练,分别获取各类的文件识别模型;利用所述文件识别模型,对未被成功编译版本的每一源文件进行分类,获取该未被成功编译版本的编译相关文件列表。本发明基于已编译的开源库版本中的编译相关文件,自动化且较为准确地预测与该版本源文件相近的版本中编译相关文件,提高了编译相关文件识别能力。
-
公开(公告)号:CN114035794A
公开(公告)日:2022-02-11
申请号:CN202111119984.1
申请日:2021-09-24
Applicant: 中国科学院信息工程研究所
IPC: G06F8/41 , G06F8/36 , G06F8/71 , G06F40/194 , G06F16/903
Abstract: 本发明公开了一种二进制代码复用的开源组件版本识别方法及装置,包括:分别提取目标二进制代码与各版本源代码的敏感特征,其中所述敏感特征包括:全局常量特征和函数级别特征;基于所述敏感特征,计算目标二进制代码与各版本源代码的相似度,获取开源组件版本识别结果。本发明通过独创的设定规则,选定了版本敏感的代码特征,从而有效地提高了二进制代码与不同版本源代码之间的识别准确率。
-
公开(公告)号:CN111045670B
公开(公告)日:2021-07-13
申请号:CN201911282855.7
申请日:2019-12-13
Applicant: 中国科学院信息工程研究所
Abstract: 本发明涉及一种二进制代码与源代码间复用关系的识别方法与装置。该方法包括:构建用于展示开源组件的库文件与源文件间的映射关系的编译依赖图;利用编译依赖图,计算源代码与二进制代码间的相似度,识别出单一复用、混合复用和部分复用;通过对二进制代码与开源组件的已匹配特征集进行对比,识别嵌套复用;根据识别出的复用关系生成复用关系图。本发明从现实软件中常见的代码复用关系划分出四种复用类型,并针对四种复用类型判断二进制代码与源代码间是否确实存在复用关系,对干扰相似性检测的复用类型进行剔除,能够有效地识别二进制代码和源代码间的复用关系。
-
公开(公告)号:CN110147235A
公开(公告)日:2019-08-20
申请号:CN201910249283.6
申请日:2019-03-29
Applicant: 中国科学院信息工程研究所
IPC: G06F8/41
Abstract: 本发明涉及一种源代码与二进制代码间的语义比对方法和装置。该方法包括:1)从给定源代码中指定一条语句STsrc和其中的关键变量Vsrc,从二进制代码中指定一条语句STbin和其中的关键变量Vbin;2)分别对Vsrc和Vbin进行数据流分析,生成Vsrc的抽象语法树和Vbin的抽象语法树;3)对Vsrc的抽象语法树和Vbin的抽象语法树进行比对,判断Vsrc和Vbin是否语义一致;4)根据关键变量Vsrc和Vbin的语义一致判断结果,判定源代码与二进制代码间的语义相似性。本发明不依赖人工干预和编译的过程,能够指定任意源代码和二进制代码函数中的关键变量进行比对,能够提高比对成功率和效率。
-
-
-