调用序列生成方法、装置、电子设备、存储介质及产品制造方法及图纸

技术编号:32355180 阅读:11 留言:0更新日期:2022-02-20 03:14
本发明专利技术提供一种调用序列生成方法、装置、电子设备、存储介质及产品,所述方法包括:获取目标程序的字节码文件;对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息;根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合。本发明专利技术能够在不运行目标程序的情况下生成调用序列,为后续根据调用序列构建可信的白名单提供了基础,有助于提高安全防护的可靠性。防护的可靠性。防护的可靠性。

【技术实现步骤摘要】
调用序列生成方法、装置、电子设备、存储介质及产品


[0001]本专利技术涉及安全防护
,尤其涉及调用序列生成方法、装置、电子设备、存储介质及产品。

技术介绍

[0002]随着移动互联网的快速发展,人们对应用程序的安全防护的要求越来越高。现有的智能终端设备在日常生活中的应用越来越广泛,同时也存在很大的信息安全隐患。
[0003]目前,一般是根据生成的调用序列来构建用于安全防护的白名单。但现有技术中往往需要程序运行起来以后,根据程序内部输出的堆栈信息来得到程序的调用序列。这种处理方式往往针对调用序列白规则防护的应用场景中,且运行起来后输出的堆栈信息可能已经包含攻击的调用序列,如内存马,导致构建的白名单不可信,存在安全隐患。

技术实现思路

[0004]本专利技术提供一种调用序列生成方法、装置、电子设备、存储介质及产品,用以解决现有技术中需要目标程序运行时才能获取调用序列,且运行中可能含有攻击的调用序列存在安全隐患的技术问题,以实现静态获取调用序列,提高安全防护的可靠性的目的。
[0005]第一方面,本专利技术提供一种调用序列生成方法,包括:
[0006]获取目标程序的字节码文件;
[0007]对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息;
[0008]根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合;其中,目标程序的任意一条调用序列是以所述目标程序中的一个方法作为开始节点,以原生方法或再次被调用的方法或不再调用其他方法的方法作为结束节点的节点序列,且所述调用序列中的前一节点所对应的方法调用所述调用序列中的后一节点所对应的方法。
[0009]进一步,根据本专利技术提供的调用序列生成方法,所述对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,包括:
[0010]对标准方法调用指令进行过滤,得到第一方法内调用其他方法的指针;其中,所述第一方法为第一类所包含方法中的任意一个;
[0011]根据所述指针在字节码文件常量池中寻找调用方法的定义,得到所述第一方法对其他方法的调用关系信息。
[0012]进一步,根据本专利技术提供的调用序列生成方法,所述根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合,包括:
[0013]以第一类中的任意一个方法作为调用序列的开始节点,根据所述方法与其他方法之间的调用关系信息,依次确定调用序列的下一个节点,直至当前节点所对应的方法为原
生方法或再次被调用的方法或不再调用其他方法的方法,结束调用序列的生成过程,得到所述第一类中的一个调用序列;其中,所述第一类为所述目标程序中的任意一个类;
[0014]对第一类所包含的所有方法进行遍历,得到所述第一类的调用序列集合;
[0015]根据所述目标程序中的各个类分别得到的调用序列集合,生成所述目标程序的调用序列集合。
[0016]进一步,根据本专利技术提供的调用序列生成方法,所述以第一类中的任意一个方法作为调用序列的开始节点,根据所述方法与其他方法之间的调用关系信息,依次确定调用序列的下一个节点,直至当前节点所对应的方法为原生方法或再次被调用的方法或不再调用其他方法的方法,结束调用序列的生成过程,得到所述第一类中的一个调用序列,包括:
[0017]将第二方法作为当前方法;其中,所述第二方法为第一类所包含方法中的任意一个;
[0018]判断当前方法是否调用其他方法、是否是原生方法以及是否是再次被调用的方法;
[0019]在当前方法不是原生方法、且当前方法不是再次被调用的方法、且当前方法调用其他方法的情况下,记录当前方法与当前方法所调用的方法之间的调用关系信息,然后将当前方法所调用的方法作为当前方法,重新执行判断当前方法是否调用其他方法、是否是原生方法以及是否是再次被调用的方法的步骤;
[0020]在当前方法是原生方法、或当前方法是再次被调用的方法、或当前方法不再调用其他方法的情况下,根据所记录的当前方法与当前方法所调用的方法之间的调用关系信息,得到以所述第一方法为开始节点、以所述原生方法或再次被调用的方法或不再调用其他方法的方法为结束节点的调用序列。
[0021]进一步,根据本专利技术提供的调用序列生成方法,所述根据所述目标程序中的各个类分别得到的调用序列集合,生成所述目标程序的调用序列集合,包括:
[0022]判断第一调用序列是否为其他调用序列的子集;其中,所述第一调用序列是所述目标程序中的各个类分别得到的调用序列集合中的任意一个调用序列;
[0023]在所述第一调用序列是其他调用序列的子集的情况下,合并所述第一调用序列。
[0024]进一步,根据本专利技术提供的调用序列生成方法,所述生成目标程序的调用序列之后,方法还包括:
[0025]根据所述目标程序的调用序列构建白名单规则。
[0026]第二方面,本专利技术提供一种调用序列生成装置,包括:
[0027]获取模块,用于获取目标程序的字节码文件;
[0028]解析模块,用于对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息;
[0029]生成模块,用于根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合;其中,目标程序的任意一条调用序列是以所述目标程序中的一个方法作为开始节点,以原生方法或再次被调用的方法或不再调用其他方法的方法作为结束节点的节点序列,且所述调用序列中的前一节点所对应的方法调用所述调用序列中的后一节点所对应的方法。
[0030]第三方面,本专利技术还提供一种电子设备,包括:
[0031]处理器、存储器和总线,其中,
[0032]所述处理器和所述存储器通过所述总线完成相互间的通信;
[0033]所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上任一项中所述调用序列生成方法的步骤。
[0034]第四方面,本专利技术还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上所述调用序列生成方法的步骤。
[0035]第五方面,本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上任一项所述调用序列生成方法的步骤。
[0036]本专利技术提供一种调用序列生成方法、装置、电子设备、存储介质及产品,所述方法包括:获取目标程序的字节码文件;对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息;根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合。本专利技术能够在不运行目标程序的情况下生成调用序列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种调用序列生成方法,其特征在于,包括:获取目标程序的字节码文件;对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息;根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合;其中,目标程序的任意一条调用序列是以所述目标程序中的一个方法作为开始节点,以原生方法或再次被调用的方法或不再调用其他方法的方法作为结束节点的节点序列,且所述调用序列中的前一节点所对应的方法调用所述调用序列中的后一节点所对应的方法。2.根据权利要求1所述的调用序列生成方法,其特征在于,所述对所述目标程序的字节码文件进行解析,得到所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,包括:对标准方法调用指令进行过滤,得到第一方法内调用其他方法的指针;其中,所述第一方法为第一类所包含方法中的任意一个;根据所述指针在字节码文件常量池中寻找调用方法的定义,得到所述第一方法对其他方法的调用关系信息。3.根据权利要求1所述的调用序列生成方法,其特征在于,所述根据所述目标程序中所包含的各个类中的方法与其他方法之间的调用关系信息,生成目标程序的调用序列集合,包括:以第一类中的任意一个方法作为调用序列的开始节点,根据所述方法与其他方法之间的调用关系信息,依次确定调用序列的下一个节点,直至当前节点所对应的方法为原生方法或再次被调用的方法或不再调用其他方法的方法,结束调用序列的生成过程,得到所述第一类中的一个调用序列;其中,所述第一类为所述目标程序中的任意一个类;对第一类所包含的所有方法进行遍历,得到所述第一类的调用序列集合;根据所述目标程序中的各个类分别得到的调用序列集合,生成所述目标程序的调用序列集合。4.根据权利要求3所述的调用序列生成方法,其特征在于,所述以第一类中的任意一个方法作为调用序列的开始节点,根据所述方法与其他方法之间的调用关系信息,依次确定调用序列的下一个节点,直至当前节点所对应的方法为原生方法或再次被调用的方法或不再调用其他方法的方法,结束调用序列的生成过程,得到所述第一类中的一个调用序列,包括:将第二方法作为当前方法;其中,所述第二方法为第一类所包含方法中的任意一个;判断当前方法是否调用其他方法、是否是原生方法以及是否是再次被调用的方法;在当前方法不是原生方法、且当前方法不是再次被调用的方法、且当前方法调用其他方法的情况下,记录当前方法...

【专利技术属性】
技术研发人员:霍辉东龙良
申请(专利权)人:奇安信安全技术珠海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1