Java程序的区间分析方法及装置

    公开(公告)号:CN110244953A

    公开(公告)日:2019-09-17

    申请号:CN201910422882.3

    申请日:2019-05-21

    Abstract: 本发明实施例提供一种Java程序的区间分析方法和装置,其中方法包括:生成Java程序的值依赖图,值依赖图的节点为Java程序中的常量和变量,值依赖图的边为节点间的依赖关系,每条边还保存有前驱节点到后继节点的守卫值条件,从值依赖图的起始节点开始逐个计算区间信息:对于当前计算的节点,将前驱节点的区间信息的并集采用当前计算的节点与前驱节点之间的守卫值条件进行过滤,获得当前计算的节点的区间取值,将区间取值经对应的转换函数进行转换,作为当前计算的节点的区间信息。本发明实施例解决了现有方法对判断语句处理上精度不足的弊端。

    代码摘要自动化生成方法及装置

    公开(公告)号:CN111651198B

    公开(公告)日:2021-04-13

    申请号:CN202010312534.3

    申请日:2020-04-20

    Applicant: 北京大学

    Abstract: 本发明实施例提供一种代码摘要自动化生成方法及装置,方法包括:基于代码摘要生成模型中的编码器分别对输入序列进行编码,获取输入序列的语义向量;基于代码摘要生成模型中的解码器对输入序列的语义向量进行解码,生成代码样本的函数名和代码摘要;根据生成的函数名、生成的代码摘要,以及预先获取的代码样本的目标函数名和目标代码摘要,计算代码摘要生成模型的损失函数的值,根据损失函数的值对代码摘要生成模型进行训练;将目标代码的输入序列输入训练好的代码摘要生成模型中生成目标代码的代码摘要。本发明实施例采用基于函数名预测任务和代码自动摘要生成任务的多任务学习机制对代码摘要生成模型进行训练,提升自动生成的代码摘要的质量。

    一种二进制反编译中数组数据结构恢复方法及系统

    公开(公告)号:CN108958739B

    公开(公告)日:2020-11-10

    申请号:CN201810573717.3

    申请日:2018-06-06

    Abstract: 本发明提供一种二进制反编译中数组数据结构恢复方法及系统,所述方法包括:S11,对于目标反编译结果中任一非指针变量,若该非指针变量的实际占位大小与该非指针变量的类型对应的占位大小之间的差值大于第一预设阈值,则将该非指针变量作为目标变量;S12,获取目标变量在目标反编译结果中各使用位置对应的第一使用模式,若根据第一使用模式对应的第一权重确定目标变量为数组变量,则对数组变量的数据结构进行恢复。本发明实现了对反编译结果中数组数据结构的自动恢复,且提高了数组数据结构恢复的正确率。

    分级多特征的代码同源分析方法及系统

    公开(公告)号:CN114968351A

    公开(公告)日:2022-08-30

    申请号:CN202210913259.X

    申请日:2022-08-01

    Applicant: 北京大学

    Abstract: 本发明涉及软件代码分析领域,公开了一种分级多特征的代码同源分析方法及系统,使用值依赖分析技术,脱离了特征提取对于结构的依赖,更准确地发现代码中的不可达路径、并更精确地计算变量常量值和变量之间的依赖关系,从而更加全面、准确构建代码在控制流和数据流上的归一化模型,使用分级的方法,将项目按照粒度由大到小划分为项目、包、文件、类和函数五层,此外按照分析精度由低到高划分为文本、标识、语法、语义四层,通过流水线由项目向函数逐级分解、再从函数向项目逐级推导和综合结果,通过流水线的方式有机组合不同粒度和不同分析层次,利用不同分析方法的优点,加速代码匹配过程,提高匹配速度和匹配精度。

    一种区间信息分析方法
    5.
    发明授权

    公开(公告)号:CN109002684B

    公开(公告)日:2021-08-06

    申请号:CN201810634685.3

    申请日:2018-06-20

    Applicant: 北京大学

    Abstract: 本发明提供一种区间信息分析方法,包括:S1,对于值依赖图中任一结点,根据该结点的任一前驱结点的区间信息和该结点与该前驱结点间的守卫条件,获取该前驱结点流入该结点的区间信息;S2,根据该结点的每一前驱结点流入该结点的区间信息和该结点的类型,获取该结点的区间信息。本发明提供的方法,应用递归的方法,基于前驱结点的区间信息和守卫条件,实现了值依赖图中任一结点区间信息的获取,提高了值依赖图的分析效率和分析进度。

    一种基于文件依赖关系的高效程序解析方法和系统

    公开(公告)号:CN108549535B

    公开(公告)日:2021-02-05

    申请号:CN201810218332.5

    申请日:2018-03-16

    Abstract: 本发明提供了一种基于文件依赖关系的高效程序解析方法和系统,该方法包括:S1,对源文件进行分割处理,获取对应的预处理单元集合;S2,对预处理单元集合中的每个预处理单元执行以下处理:若确认预处理单元的类型为预处理指令中的文件包含指令,则提取预处理单元中的头文件;若确认存在通过预先解析头文件获取到的抽象语法树,则将头文件的抽象语法树链接至源文件的抽象语法树;若确认不存在通过预先解析头文件获取到的抽象语法树,则将头文件作为源文件执行步骤S1和S2以对头文件进行解析。本发明判断头文件是否被预先解析,将预先解析得到的抽象语法树链接至源文件的抽象语法树,避免相同头文件的重复解析,减少了程序解析时间。

    安卓APK文件依赖组件识别方法及装置

    公开(公告)号:CN112000339A

    公开(公告)日:2020-11-27

    申请号:CN202010657866.5

    申请日:2020-07-09

    Applicant: 北京大学

    Abstract: 本发明实施例提供一种安卓APK文件依赖组件识别方法及装置。其中,方法包括:解析安卓APK文件,获取代码文件和清单文件,根据代码文件和清单文件,获取安卓工程依赖的各组件的文件和package目录;将安卓工程依赖的各组件的文件和package目录与Android SDK部分中各组件的jar的反编译结果进行比较,获取Android SDK部分所依赖的组件;将安卓工程依赖的各组件的文件和package目录与非Android SDK部分的各package依赖的jar的反编译结果进行比较,获取非Android SDK部分所依赖的组件。本发明实施例提供的安卓APK文件依赖组件识别方法及装置,能降低误识别率。

    软件同源分析方法及装置

    公开(公告)号:CN111666101A

    公开(公告)日:2020-09-15

    申请号:CN202010335325.0

    申请日:2020-04-24

    Applicant: 北京大学

    Abstract: 本发明实施例提供一种软件同源分析方法及装置,所述方法包括:获取源代码数据库,所述源代码数据库包括:参考源代码文件的特征信息和参考源代码文件的创建时间;获取目标软件的目标源代码文件,所述目标源代码文件包括:目标源代码文件的特征信息;基于所述参考源代码文件的特征信息与所述目标源代码文件的特征信息的匹配结果,确定所述目标源代码文件的备选同源文件;将对应的所述创建时间最早的所述备选同源文件作为所述目标源代码文件对应的最终同源文件;根据所述最终同源文件,确定软件同源分析结果。本发明实施例的软件同源分析方法,解决了软件传播所造成的分析结果误差,提升了软件同源分析的精度。

    代码摘要自动化生成方法及装置

    公开(公告)号:CN111651198A

    公开(公告)日:2020-09-11

    申请号:CN202010312534.3

    申请日:2020-04-20

    Applicant: 北京大学

    Abstract: 本发明实施例提供一种代码摘要自动化生成方法及装置,方法包括:基于代码摘要生成模型中的编码器分别对输入序列进行编码,获取输入序列的语义向量;基于代码摘要生成模型中的解码器对输入序列的语义向量进行解码,生成代码样本的函数名和代码摘要;根据生成的函数名、生成的代码摘要,以及预先获取的代码样本的目标函数名和目标代码摘要,计算代码摘要生成模型的损失函数的值,根据损失函数的值对代码摘要生成模型进行训练;将目标代码的输入序列输入训练好的代码摘要生成模型中生成目标代码的代码摘要。本发明实施例采用基于函数名预测任务和代码自动摘要生成任务的多任务学习机制对代码摘要生成模型进行训练,提升自动生成的代码摘要的质量。

    一种基于路径追踪的漏洞检测方法及系统

    公开(公告)号:CN109063483A

    公开(公告)日:2018-12-21

    申请号:CN201810643006.9

    申请日:2018-06-21

    Abstract: 本发明提供一种基于路径追踪的漏洞检测方法及系统,其中方法包括:对于当前测试用例,获取当前测试用例在待检测程序中运行时产生的第一运行路径;将第一运行路径与预设漏洞路径进行匹配,若第一运行路径与预设漏洞路径完全匹配,则根据当前测试用例检测待检测程序中的漏洞。该方法及系统以预设漏洞路径为标准,当且仅当某一个当前测试用例在待检测程序中运行时产生的第一运行路径与预设漏洞路径完全匹配时,才确定该当前测试用例为能够触发待检测程序中漏洞的测试用例,最终确定的测试用例能够有效检测出待检测程序中的漏洞,克服了现有的模糊测试工具在进行程序漏洞检测时难以确保有效检测出漏洞的问题,一定程度上提高了漏洞检测的效率。

Patent Agency Ranking