[发明专利]指令模拟引擎的判别方法、装置、设备及介质在审
申请号: | 202011407107.X | 申请日: | 2020-12-04 |
公开(公告)号: | CN112559328A | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 李智 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/56 |
代理公司: | 北京市立方律师事务所 11330 | 代理人: | 张筱宁;张海秀 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 模拟 引擎 判别 方法 装置 设备 介质 | ||
本公开实施例提供了一种指令模拟引擎的判别方法、装置、设备及介质,包括:获取采用进阶精简指令集机器汇编语言编写的测试代码;在运行测试代码过程中执行用于触发普林斯顿结构的缓存特性的指令修改操作,得到对应的触发结果;其中,若触发结果为触发成功,则确定终端设备的运行环境为指令模拟引擎;若触发结果为触发失败,则确定终端设备的运行环境为非指令模拟引擎。本公开实施例中,由于不是通过执行系统API来获取信息判断指令模拟引擎的类别,因此不需要暴露系统API,降低了安全隐患。
技术领域
本公开涉及计算机技术领域,具体而言,本公开涉及一种英特尔架构中指令模拟引擎的判别方法、装置、设备及介质。
背景技术
目前在移动端市场上,所面临的威胁除了常见的模拟器,还包技术日渐成熟的指令模拟引擎。指令模拟引擎是基于QEMU(Quick emulator,虚拟操作系统模拟器)衍生出来的,基于QEMU的指令模拟引擎可以模拟包含ARM(Acorn Rise Machine,进阶精简指令集机器)汇编在内目前大部分机器码,且指令模拟引擎不同于模拟器,其不需要支撑整个操作系统的开销,效率会远于高于模拟器,但是当遇到和系统底层进行交互的时候则需要由开发者自行处理,因此更适合安全研究者用于行为跟踪或者制作黑客工具。
在一般情况下,在判断是否存在指令模拟引擎时,可以通过执行与系统底层进行交互的API(Application Programming Interface,应用程序接口)来访问文件、操作系统特性、以及进程信息等信息做出判断。但是,由于指令模拟引擎模拟执行引擎可以接管所有的系统API和调用和结果,因此若采用现有的方式很容易暴露系统API,进而造成安全隐患。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供了一种指令模拟引擎的判别方法,该方法包括:
获取采用进阶精简指令集机器汇编语言编写的测试代码;
在运行测试代码过程中执行用于触发普林斯顿结构的缓存特性的指令修改操作,得到对应的触发结果;
其中,若触发结果为触发成功,则确定终端设备的运行环境为指令模拟引擎;
若触发结果为触发失败,则确定终端设备的运行环境为非指令模拟引擎。
第二方面,本公开实施例提供了一种指令模拟引擎的判别装置,该装置包括:
代码获取模块,用于获取采用进阶精简指令集机器汇编语言编写的测试代码;
代码运行模块,用于在运行测试代码过程中执行用于触发普林斯顿结构的缓存特性的指令修改操作,得到对应的触发结果;
结果判别模块,用于在触发结果为触发成功时,确定终端设备的运行环境为指令模拟引擎、以及在触发结果为触发失败,确定终端设备的运行环境为非指令模拟引擎。
第三方面,本公开提供了一种电子设备,该电子设备包括处理器和存储器;
存储器,用于存储计算机操作指令;
处理器,用于通过调用计算机操作指令,执行如本公开实施例的第一方面的任一实施例中所示的方法。
第四方面,本公开提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开实施例的第第一方面的任一实施例中所示的方法。
本公开实施例提供的技术方案带来的有益效果是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011407107.X/2.html,转载请声明来源钻瓜专利网。