本发明涉及字节码分析领域,特别涉及一种字节码指令序列分析方法、装置、电子设备、存储介质。
背景技术:
1、在现有技术中,在对字节码进行更新、维护或者拓展时,都采用的较大的分析粒度,通常为指令或者指令的操作数,如果以指令作为分析粒度,则每拓展一个新指令都将增加一个新的指令单元。如果以指令的操作数作为分析粒度,则在在拓展新指令的时候,会因为重新排列了操作数与操作数类型,而不得不增加一个新的指令单元。因此现有技术中的分析粒度较大,实现较为繁琐,并且不易于维护扩展。
技术实现思路
1、以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
2、本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种字节码指令序列分析方法、装置、电子设备、存储介质,能够以单个操作数为分析粒度对字节码指令序列进行分析,实现起来较为简单,且易于维护拓展。
3、第一方面,本发明实施例提供了一种字节码指令序列分析方法,包括:
4、从字节码指令序列中获取待分析的字节码;其中,所述字节码指令序列包括至少一个待分析的所述字节码;
5、从所述字节码中提取操作码;
6、根据所述操作码确定至少一个操作数和所述操作数的操作数类型;
7、根据所述操作数类型确定所述操作数类型所对应的分析单元,逐一地通过所述分析单元对应地对所述操作数进行分析,得到所述字节码的字节码分析结果;
8、在所述字节码指令序列中的所述字节码均被获取、分析的情况下,输出指令序列分析结果;其中所述指令序列分析结果包括至少一个所述字节码分析结果。
9、在本发明的一些实施例中,所述从字节码指令序列中获取待分析的字节码,包括:
10、确定所述字节码指令序列中预先设置的全局指针的指向;
11、在所述全局指针未指向所述字节码指令序列的最后一个字节的情况下,根据所述全局指针的指向确定所述待分析的所述字节码。
12、在本发明的一些实施例中,所述在字节码指令序列中的所述字节码均被获取、分析的情况下,输出指令序列分析结果,包括:
13、在所述全局指针指向所述字节码指令序列的最后一个字节的情况下,确认对所述字节码指令序列的所述字节码的分析完成;
14、输出所述指令序列分析结果。
15、在本发明的一些实施例中,所述根据所述操作码确定至少一个操作数和所述操作数的操作数类型,包括:
16、根据所述操作码从指令集中获取对应的指令信息;
17、从所述指令信息中确定所述操作数的数量和各个所述操作数对应的所述操作数类型。
18、在本发明的一些实施例中,所述根据所述操作数类型确定所述操作数类型所对应的分析单元,所述逐一地通过所述分析单元对应地对所述操作数进行分析,得到所述字节码的字节码分析结果,包括:
19、在所述操作数的数量为多个的情况下,依次处理所述操作数,每处理一个所述操作数,根据所述操作数的所述操作数类型确定对应的一个所述分析单元;
20、通过确定的所述分析单元对应地对所述操作数进行分析,在多个所述操作数均被分析完成的情况下,得到当前分析的所述字节码的字节码分析结果。
21、在本发明的一些实施例中,所述字节码分析结果包括操作数描述,所述通过确定的所述分析单元对应地对所述操作数进行分析,包括:
22、在通过所述分析单元对单个所述操作数分析的过程中,根据预设字节数量读取所述操作数,生成所述操作数描述;
23、将所述操作数描述添加至所述字节码分析结果中。
24、在本发明的一些实施例中,所述字节码分析结果还包括操作名称;所述方法还包括:
25、从所述指令信息中获取所述操作名称;
26、将所述操作名称添加至所述字节码分析结果中。
27、第二方面,本发明实施例提供了一种字节码指令序列分析装置,包括:至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如第一方面实施例所述的字节码指令序列分析方法。
28、第三方面,本发明实施例提供了一种电子设备,包括有如上述第二方面所述的字节码指令序列分析装置。
29、第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的字节码指令序列分析方法。
30、本发明实施例包括:通过利用字节码指令序列分析装置,从字节码指令序列中获取待分析的字节码;其中,字节码指令序列包括至少一个待分析的字节码;从字节码中提取操作码;根据操作码确定至少一个操作数和操作数的操作数类型;根据操作数类型确定操作数类型所对应的分析单元,逐一地通过分析单元对应地对操作数进行分析,得到字节码的字节码分析结果;在字节码指令序列中的字节码均被获取、分析的情况下,输出指令序列分析结果;其中指令序列分析结果包括至少一个字节码分析结果。本发明通过字节码的操作码找到对应的操作数,在分析时,通过操作数类型对应地确定分析单元,出现重复类型的操作数时,重复使用同一个分析单元分析多个操作数,而不需要使用另外的分析单元。即是说,本发明实施例能够以单个操作数为分析粒度对字节码指令序列进行分析,实现起来较为简单,且易于维护拓展。
1.一种字节码指令序列分析方法,其特征在于,包括:
2.根据权利要求1所述的字节码指令序列分析方法,其特征在于,所述从字节码指令序列中获取待分析的字节码,包括:
3.根据权利要求2所述的字节码指令序列分析方法,其特征在于,所述在所述字节码指令序列中的所述字节码均被获取、分析的情况下,输出指令序列分析结果,包括:
4.根据权利要求1所述的字节码指令序列分析方法,其特征在于,所述根据所述操作码确定至少一个操作数和所述操作数的操作数类型,包括:
5.根据权利要求4所述的字节码指令序列分析方法,其特征在于,所述根据所述操作数类型确定所述操作数类型所对应的分析单元,所述逐一地通过所述分析单元对应地对所述操作数进行分析,得到所述字节码的字节码分析结果,包括:
6.根据权利要求5所述的字节码指令序列分析方法,其特征在于,所述字节码分析结果包括操作数描述,所述通过确定的所述分析单元对应地对所述操作数进行分析,包括:
7.根据权利要求4所述的字节码指令序列分析方法,其特征在于,所述字节码分析结果还包括操作名称;所述方法还包括:
8.一种字节码指令序列分析装置,其特征在于,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如权利要求1至7任一项所述的字节码指令序列分析方法。
9.一种电子设备,其特征在于,包括权利要求8所述的字节码指令序列分析装置。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至7任一项所述的字节码指令序列分析方法。