-
公开(公告)号:CN111045670A
公开(公告)日:2020-04-21
申请号:CN201911282855.7
申请日:2019-12-13
Applicant: 中国科学院信息工程研究所
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的语义一致判断结果,判定源代码与二进制代码间的语义相似性。本发明不依赖人工干预和编译的过程,能够指定任意源代码和二进制代码函数中的关键变量进行比对,能够提高比对成功率和效率。
-
公开(公告)号:CN111078227B
公开(公告)日:2021-08-31
申请号:CN201911282875.4
申请日:2019-12-13
Applicant: 中国科学院信息工程研究所
Abstract: 本发明涉及一种基于代码特征的二进制代码与源代码相似性分析方法与装置。该方法包括:提取源代码与二进制代码中共同存在的具备抗编译优化特性的代码特征;通过对提取出的代码特征进行特征匹配,计算源代码与二进制代码间的相似度;根据计算出的相似度得出软件的二进制代码是否复用源代码的结论。提取的所述代码特征包括:字符串、导出函数、字符串数组、全局常量数组、全局枚举数组、复杂Switch/Case结构、复杂If/Else结构。本发明能够提供准确的代码相似性检测,能够广泛处理跨源代码和二进制代码间的比较,克服现有方法仅依赖于特定字符串或符号信息的局限性。
-
公开(公告)号:CN110147235B
公开(公告)日:2021-01-01
申请号: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的语义一致判断结果,判定源代码与二进制代码间的语义相似性。本发明不依赖人工干预和编译的过程,能够指定任意源代码和二进制代码函数中的关键变量进行比对,能够提高比对成功率和效率。
-
公开(公告)号:CN111078227A
公开(公告)日:2020-04-28
申请号:CN201911282875.4
申请日:2019-12-13
Applicant: 中国科学院信息工程研究所
Abstract: 本发明涉及一种基于代码特征的二进制代码与源代码相似性分析方法与装置。该方法包括:提取源代码与二进制代码中共同存在的具备抗编译优化特性的代码特征;通过对提取出的代码特征进行特征匹配,计算源代码与二进制代码间的相似度;根据计算出的相似度得出软件的二进制代码是否复用源代码的结论。提取的所述代码特征包括:字符串、导出函数、字符串数组、全局常量数组、全局枚举数组、复杂Switch/Case结构、复杂If/Else结构。本发明能够提供准确的代码相似性检测,能够广泛处理跨源代码和二进制代码间的比较,克服现有方法仅依赖于特定字符串或符号信息的局限性。
-
-
-
-
-