[发明专利]对操作数栈和变量表的读写方法、装置、设备及存储介质有效
申请号: | 202011110316.8 | 申请日: | 2020-10-16 |
公开(公告)号: | CN112199159B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 乐德广 | 申请(专利权)人: | 常熟理工学院 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F21/71 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 滕诣迪 |
地址: | 215500 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 作数 量表 读写 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种对操作数栈和变量表的读写方法、装置、设备及存储介质,其中,所述对操作数栈和变量表的读写方法,包括:获取每个解释例程的操作数栈和局部变量表所对应的寄存器;以所述寄存器作为查找条件即可找到每个解释例程中对操作数栈和局部变量表读操作的指令集合。针对虚拟机软件保护的逆向工程分析,通过标记解释例程中对操作数栈和局部变量表读写的汇编指令,以达到准确计算每个解释例程对局部变量区的读次数和对操作数栈的读次数目的。
技术领域
本发明涉及读写操作数栈和变量表技术领域,也涉及信息安全、软件分析、逆向工程和计算机软件技术领域,特别指一种对操作数栈和变量表的读写方法、装置、设备及存储介质,尤指一种标记解释例程中对操作数栈和局部变量表读写的汇编指令方法、装置、设备及存储介质。
背景技术
虚拟机保护是指将基于CPU的机器码转换为字节码并嵌入相应虚拟机解释器的一种软件保护技术。当受虚拟机保护的软件运行时,由嵌入的虚拟机解释器对转换后的字节码进行解释执行,完成原CPU机器码一样的功能。然而,越来越多的木马等恶意程序却利用虚拟机保护来逃避对它们的查杀。如何逆向分析和检测虚拟机保护的恶意程序成为软件安全面临的新挑战。
目前,虚拟机保护软件通常采虚假指令、控制流混淆、指令替换等方式对虚拟机解释器自身进行保护,使得CPU的机器码经过虚拟化保护后,其指令数量会膨胀成百上千倍。通过现有静态分析与动态调试技术对虚拟机进行分析,得到的是虚拟机解释器的逻辑,并不能获取被保护指令的语义信息。因此深入研究虚拟机保护技术,实现有效虚拟机解释器的虚拟指令逆向分析方法意义重大。
发明内容
本发明实施例提供了一种对操作数栈和变量表的读写方法、装置、设备及存储介质,针对虚拟机软件保护的逆向工程分析,通过标记解释例程中对操作数栈和局部变量表读写的汇编指令,以达到准确计算每个解释例程对局部变量区的读次数和对操作数栈的读次数目的。
本发明实施例提供了一种对操作数栈和变量表的读写方法,包括:
获取每个解释例程的操作数栈和局部变量表所对应的寄存器;
以所述寄存器作为查找条件即可找到每个解释例程中对操作数栈和局部变量表读操作的指令集合。
进一步的,所述对操作数栈和局部变量表读操作的指令集合为:
vm_handler.op_stack_insts={I1,I2,…Ii,…,IM},1iM;
vm_handler.local_var_table_insts={I1,I2,…Ij,…,IN},1jN。
进一步的,所述判定解释例程中对操作数栈和局部变量表读写的指令的方法,包括:
遍历所有的解释例程集合,在每个解释例程中进一步遍历其中的指令序列;
然后分别以操作数栈对应的寄存器和局部变量表对应的寄存器作为模式被匹配数据去匹配指令序列中对它们的读操作。
进一步的,每次匹配前需要取对应的寄存器来组装被匹配数据。
进一步的,一旦匹配成功,就把这些指令添加至对应的读操作集合中;添加结束后,可以分别得到对操作数栈和局部变量表读操作的指令集合。
本发明实施例还提供一种对操作数栈和变量表的读写装置,包括:
获取模块,用于获取每个解释例程的操作数栈和局部变量表所对应的寄存器;
查找模块,用于以所述寄存器作为查找条件即可找到每个解释例程中对操作数栈和局部变量表读操作的指令集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常熟理工学院,未经常熟理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011110316.8/2.html,转载请声明来源钻瓜专利网。