[发明专利]操作数栈寄存器识别方法、装置、设备及存储介质有效
申请号: | 202011111857.2 | 申请日: | 2020-10-16 |
公开(公告)号: | CN112199116B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 乐德广 | 申请(专利权)人: | 常熟理工学院 |
主分类号: | G06F8/74 | 分类号: | G06F8/74;G06F9/455 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 滕诣迪 |
地址: | 215500 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 作数 寄存器 识别 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种操作数栈寄存器识别方法、装置、设备及存储介质,其中,所述操作数栈寄存器识别方法,包括:确定每个解释例程执行前后所有寄存器的值,使用寄存器作为健值的两个容器来记录这两组状态;先确认在进入虚拟机之前,操作数栈所对应的寄存器;然后跟踪分析操作数栈的变化情况进一步确定每个解释例程操作数栈所对应的寄存器。根据解释例程执行的特征,以及寄存器的变化范围确认每个解释例程操作数栈所对应的寄存器,有助于后续的虚拟指令语法和语义分析。
技术领域
本发明涉及操作数栈寄存器技术领域,也涉及信息安全、软件分析、逆向工程和计算机软件技术领域,特别涉及一种操作数栈寄存器识别方法、装置、设备及存储介质,尤指一种虚拟机保护的解释例程操作数栈寄存器识别方法、装置、设备及存储介质。
背景技术
虚拟机保护是结合虚拟化和代码混淆实现软件保护的一种技术,现有的代码反混淆分析方法还原被虚拟机保护的软件时存在较大困难。有文献提出以动态二进制插桩平台Pin作为支撑,跟踪记录被虚拟机保护的算法在动态执行过程中的数据流信息,对记录的数据流信息进行整理分析,获取虚拟机指令的解释执行轨迹,还原程序的控制流图,根据轨迹信息对数据生成过程进行分层次、分阶段还原,并由分析人员结合控制流图和数据生成过程进行算法重构。然而,该方法还原的控制流图准确性不高,且无法实现对虚拟指令的逆向还原。
发明内容
本发明实施例提供了一种操作数栈寄存器识别方法、装置、设备及存储介质,针对虚拟机软件保护的逆向工程分析,通过特征匹配和寄存器变化值的范围分析,以达到准确识别解释例程中的操作数栈对应的寄存器目的。
本发明实施例提供了一种操作数栈寄存器识别方法,包括:
确定每个解释例程执行前后所有寄存器的值,使用寄存器作为健值的两个容器来记录这两组状态;
先确认在进入虚拟机之前,操作数栈所对应的寄存器;
然后跟踪分析操作数栈的变化情况进一步确定每个解释例程操作数栈所对应的寄存器。
进一步的,在每个解释例程的记录中,第1行会显示每个寄存器的值,之后每条记录的最后1列会记录每条指令执行后被修改的寄存器及其被修改后的值。
进一步的,虚拟机会通过设定的方式切换操作数栈所对应的寄存器。
进一步的,所述解释例程操作数栈所对应的寄存器判定的方法,包括如下步骤:
遍历解释例程中的指令序列,使用正则表达式来匹配所述特征,如果匹配到设定的指令特征一,则置标志变量的值为True;
待后续匹配到设定的指令特征二,认定操作数栈所对应的寄存器发生变化,记录指令特征二的另一个寄存器为寄存器,并在遍历结束后并设置解释例程的值为寄存器一的值;
如果在匹配到mov指令特征二之前没有匹配到xchg指令特征一,则判定其疑似发生变化并设置op_stack_reg_candidate;
在解释例程指令序列一次遍历结束后,解释例程的exit_status和enter_status判断操作数栈顶的变化值,如果按照操作数栈对应寄存器没变化的情况计算其变化值超出了正常的变化范围[-8,8],则认定疑似变化的op_stack_reg_candidate是真实变化的情况,修改该解释例程的op_stack_exit_reg值为op_stack_reg_candidate。
本发明实施例还提供一种操作数栈寄存器识别装置,包括:
记录模块,用于确定每个解释例程执行前后所有寄存器的值,使用寄存器作为健值的两个容器来记录这两组状态;
确认模块,用于先确认在进入虚拟机之前,操作数栈所对应的寄存器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常熟理工学院,未经常熟理工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011111857.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车载撬装式原位土壤修复系统
- 下一篇:基于新能源应用的园艺割草设备及方法