1.一种混合指令集程序的反汇编方法,其特征在于,包括以下步骤:
获取程序的代码段的开始位与结束位,根据所述开始位与结束位遍历所述程序的代码段,识别出所述程序的代码段中的跳转指令;
获取所述跳转指令所指向的目的函数,记录所述目的函数的入口地址及该目的函数所属的指令集类型,得到带有指令集标识的函数入口地址集合;
根据所述带有指令集标识的函数入口地址集合计算生成至少一个单一指令集代码段;
使用预设分析法反汇编所述单一指令集代码段。
2.根据权利要求1所述的方法,其特征在于,所述记录所述目的函数的入口地址及该目的函数所属的指令集类型之后,还包括:
重复执行根据所述开始位与结束位遍历所述程序的代码段,识别出所述程序的代码段中的跳转指令;获取所述跳转指令所指向的目的函数,记录所述目的函数的入口地址及该目的函数所属的指令集类型的步骤。
3.根据权利要求1所述的方法,其特征在于,所述记录所述目的函数的入口地址及该目的函数所属的指令集类型之后,还包括:
按照所述目的函数的入口地址按预设规则对所述目的函数进行排序,并剔除非法的入口地址,得到排序后的带有指令集标识的函数入口地址集合。
4.根据权利要求3所述的方法,其特征在于,所述根据所述带有指令集标识的函数入口地址集合计算生成至少一个单一指令集代码段,包括:
根据排序后的带有指令集标识的函数入口地址集合,判断排序后的连续的多个函数入口地址是否具有相同的指令集标识;
若是,将该排序后的连续的多个函数入口地址归类为同一个单一指令集代码段,生成至少一个单一指令集代码段。
5.根据权利要求1所述的方法,其特征在于,所述跳转指令包括第一跳转指令和第二跳转指令;所述获取所述跳转指令所指向的目的函数,记录所述目的函数的入口地址及该目的函数所属的指令集类型,包括:
若所述跳转指令为第一跳转指令,获取所述第一跳转指令所指向的目的函数,记录所述目的函数的入口地址,及记录所述目的函数所属指令集为当前遍历时所用的指令集;
若所述跳转指令为第二跳转指令,获取所述第二跳转指令所指向的目的函数,记录所述目的函数的入口地址,及记录所述目的函数所属指令集为目的函数所要切换的目的指令集。
6.根据权利要求5所述的方法,其特征在于,第一跳转指令为不带指令集切换的函数跳转指令;所述第二跳转指令为带指令集切换的函数跳转指令。
7.根据权利要求1所述的方法,其特征在于,所述根据所述开始位与结束位遍历所述程序的代码段,识别出所述程序的代码段中的跳转指令,包括:
根据所述开始位按每32位将程序的代码段分割成若干条潜在的arm指令;
判断所述潜在的arm指令是否为armblx指令或armbl指令,识别出所述程序的代码段中的跳转指令;
根据所述开始位按每16位将程序的代码段分割成若干条潜在的thumb指令;
判断所述潜在的thumb指令是否为thumbblx指令或thumbbl指令,识别出所述程序的代码段中的跳转指令。
8.一种混合指令集程序的反汇编装置,其特征在于,包括:
遍历模块:用于获取程序的代码段的开始位与结束位,根据所述开始位与结束位遍历所述程序的代码段,识别出所述程序的代码段中的跳转指令;
记录模块:用于获取所述跳转指令所指向的目的函数,记录所述目的函数的入口地址及该目的函数所属的指令集类型,得到带有指令集标识的函数入口地址集合;
计算模块:用于根据所述带有指令集标识的函数入口地址集合计算生成至少一个单一指令集代码段;
反汇编模块:用于使用预设分析法反汇编所述单一指令集代码段。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的混合指令集程序的反汇编方法。
10.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行根据权利要求1至7任一项所述的混合指令集程序的反汇编方法。