[发明专利]一种静动态相结合的程序特征抽取方法及装置有效
申请号: | 202011395027.7 | 申请日: | 2020-12-03 |
公开(公告)号: | CN112487403B | 公开(公告)日: | 2022-12-23 |
发明(设计)人: | 贺飞;杨璨;于千山 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F21/44 | 分类号: | G06F21/44;G06N3/04;G06N3/08;G06F17/18 |
代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 马军芳;张艳 |
地址: | 100089*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 相结合 程序 特征 抽取 方法 装置 | ||
1.一种静动态相结合的程序特征抽取方法,其特征在于,所述方法包括:
获取待验证程序;所述待验证程序包括多个子程序,各所述子程序具有先后执行顺序关系;
运行所述多个子程序中的第一个子程序,在所述第一个子程序运行过程中统计得到所述第一个子程序对应的第一程序特征,所述第一程序特征包括静态特征和动态特征;所述静态特征包括:程序结构特征、程序变量特征、以及程序语义特征;所述动态特征包括:精化算法类特征、可配置程序分析CPA算法类特征、基础算法类特征、精度调整类特征、插值类特征、以及数据类特征;
将所述第一子程序的下一子程序作为当前子程序,将所述第一程序特征作为当前程序特征;
确定所述当前程序特征对应的当前抽象域;并基于所述当前抽象域,对所述当前子程序进行验证,并在验证过程中统计得到所述当前子程序对应的当前程序特征;
判断是否存在未验证的子程序;当存在未验证的子程序时,将所述当前子程序的下一子程序作为当前子程序,返回执行所述确定所述当前程序特征对应的当前抽象域的步骤。
2.根据权利要求1所述的方法,其特征在于,所述运行所述多个子程序中的第一个子程序,在所述第一个子程序运行过程中统计得到所述第一个子程序对应的第一程序特征之后,所述方法还包括:
对各所述第一程序特征进行分类,确定所有的非布尔类型的目标程序特征;
判断是否扩展所有特征;
当确定扩展所有特征时,对每个所述目标程序特征进行升维处理;当确定不扩展所有特征时,获取预定类型的目标程序特征,并对所获取的目标程序特征进行升维处理。
3.根据权利要求2所述的方法,其特征在于,所述对每个所述目标程序特征进行升维处理的步骤包括:
针对时间类型的目标程序特征,对该目标程序特征进行取自然对数处理;
针对小整数类型的目标程序特征,对该目标程序特征进行分桶处理;所述小整数类型的目标程序特征为数值范围在0-100之间的特征;
针对大整数类型的目标程序特征,对该目标程序特征进行取自然对数或分桶处理;所述大整数类型的目标程序特征为数值大于100的特征。
4.根据权利要求1所述的方法,其特征在于,
所述程序结构特征包括:Program_requires_loop_handling、Program_containing_external_functions、Number_of_functiions、Number_of_loops、Number_of_intbool_partitions、Number_of_int_add_partitions、以及Number_of_nodes;
所述程序变量特征包括:Program_contain_only_relevant_bools、Program_requires_composite_type_handling、Program_requires_array_handling、Program_requires_float_handling、Relevant_bool_vars_ratio、Relevant_addressed_vars_ratio、Number_of_relevant_variables、以及Number_of_addressed_variables;
所述程序语义特征包括:Program_requires_alias_handling、Number_of_righthand_side_functions、Number_of_intbool_vars、Number_of_int_equal_partitions、Number_of_int_equal_vars、Number_of_int_add_vars、Number_of_int_overflow_vars、Number_of_assumed_variables、以及Number_of_assigned_variables。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011395027.7/1.html,转载请声明来源钻瓜专利网。