1.一种虚拟机保护的解释例程识别方法,其特征在于,包括:
根据程序线索式解释执行的跳转特征,将虚拟机解释器分为若干个不同的字节码来解释例程,即:将取指、译码和分派代码嵌入到每个解释例程的最后;
通过在虚拟机保护的动态执行轨迹记录中指令特征匹配进行解释例程的划分和识别;
从而由一个解释例程转移至另一个解释例程执行。
2.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,每个待执行解释例程根据其执行的先后顺序被串联起来,开始执行后,会依次执行每个解释例程,在上一条虚拟字节码的解释例程执行完后,控制流通过匹配的跳转方式跳到至下一个解释例程。
3.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,在大量的虚拟机指令序列中,其虚拟机在完成一次解释执行前,都会执行同一动作,包括跳转到取指令的位置。
4.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,利用虚拟机动态指令追踪记录中的push reg和ret指令特征匹配进行解释例程的划分和识别。
5.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,利用虚拟机动态指令追踪记录中的jmp reg指令特征匹配进行解释例程的划分和识别。
6.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,通过在虚拟机保护的动态执行轨迹记录中匹配线索式解释执行情况进行解释例程的划分和识别。
7.根据权利要求1所述的虚拟机保护的解释例程识别方法,其特征在于,轮询动态执行轨迹记录,如果匹配到解释例程的结束特征,则创建一个新的解释例程实例,之后把轮询的后续指令添加到该实例中,直至一个新的特征出现,则表示该实例的指令序列结束;以此类推,循环结束后,得到所有被执行的解释例程的实例集合;
每一个解释例程执行结束之前,esp寄存器都会指向局部变量表的位置,以该约束作为解释例程识别的加强条件。
8.一种虚拟机保护的解释例程识别装置,其特征在于,包括:
嵌入模块,用于将取指、译码和分派代码嵌入到每个解释例程的最后;
划分和识别模块,用于通过在虚拟机保护的动态执行轨迹记录中指令特征匹配进行解释例程的划分和识别;
转移模块,用于由一个解释例程转移至另一个解释例程执行。
9.一种虚拟机保护的解释例程识别设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~
7中任意一项所述虚拟机保护的解释例程识别方法。
10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~7中任意一项所述虚拟机保护的解释例程识别方法。