[发明专利]一种高速模拟非目标指令集的系统及方法在审

专利信息
申请号: 202210789593.9 申请日: 2022-07-06
公开(公告)号: CN115033288A 公开(公告)日: 2022-09-09
发明(设计)人: 黄钟吕 申请(专利权)人: 上海芯竹科技有限公司
主分类号: G06F9/30 分类号: G06F9/30
代理公司: 深圳博敖专利代理事务所(普通合伙) 44884 代理人: 胡智援
地址: 200072 上海市静*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 高速 模拟 目标 指令 系统 方法
【权利要求书】:

1.一种高速模拟非目标指令集的系统,其特征在于,所述高速模拟非目标指令集的系统包括:

API/ABI自动扫描模块,用于自动扫描系统sdk,为所有可能会调用的API的ABI准备好ABI转换信息;

内核处理模块,用于修改内核所能接受的指令集的程序类型,使得模拟程序集能够顺利载入内存;

指令翻译模块,用于把模拟指令集翻译成目标指令集;

ABI转换模块,负责当模拟程序运行到要跟原生指令交互时,把不同指令集的ABI格式进行转换;

异常处理模块,负责当异常发生并且进行Unwind时,程序能够顺利在不同指令集之间切换。

2.根据权利要求1所述的高速模拟非目标指令集的系统,其特征在于:所述API/ABI自动扫描模块基于LLVM开源代码。

3.根据权利要求1所述的高速模拟非目标指令集的系统,其特征在于:所述指令翻译模块基于QEMU开源代码。

4.一种高速模拟非目标指令集的方法,其特征在于,所述高速模拟非目标指令集的方法包括以下步骤:

S1,首先运行API/ABI自动扫描模块,获得所有程序可调用的API的ABI记录保存;

S2,然后载入内核处理模块,使内核允许载入模拟指令集的程序;

S3,运行模拟指令集的程序,此时由于内核处理模块已经载入,会为模拟指令集的程序载入指令翻译模块、ABI转换模块和异常处理模块;

S4,在模拟指令集程序运行后,指令翻译模块优先获得运行权,此时开始指令翻译工作,完成后开始执行翻译完的指令;

S5,当翻译指令运行到需要调用目标指令集的API时,ABI转换模块会读取S1步骤中生成的ABI转换信息,并且按照ABI转换信息来进行ABI转换,使得目标指令集的API能够被正确调用;

S6,当目标指令集的API需要回调模拟指令集时,由于所有的回调理论上都是通过API注册的,所以只需要在S5中记录有回调的API,为回调地址记录ABI信息,同样由ABI转换模块进行ABI转换处理;

S7,当模拟程序发生异常,需要进行Unwind时,由异常处理模块处理,根据目标指令集和模拟指令集的混合堆栈进行异常Unwind,直到异常得到处理为止。

5.根据权利要求4所述的高速模拟非目标指令集的方法,其特征在于:在S1步骤中,所述获得所有程序可调用的API的ABI记录包括以下步骤:

步骤一,读取SDK头文件,获取API的函数原型;

步骤二,记录函数名称,函数参数数量,函数参数类型,函数返回类型;

步骤三,如果有函数类型的参数,则要继续记录该参数作为函数的函数参数数量,函数参数类型,函数返回类型。

6.根据权利要求4所述的高速模拟非目标指令集的方法,其特征在于:在S4步骤中,所述指令翻译过程由开源软件qemu完成。

7.根据权利要求4所述的高速模拟非目标指令集的方法,其特征在于:在S5和S6步骤中,所述ABI转换包括以下步骤:

步骤一,读取S1步骤中创建的ABI记录;

步骤二,根据要调用的目标地址得到所需函数的名字或者ABI信息;

步骤三,结合步骤一中读取到的ABI信息,根据函数名字查询到函数参数个数、函数参数类型和函数返回类型;

步骤四,根据步骤三中的信息,开始根据ABI信息读取调用者的参数信息,如果在不同指令集的ABI下形态不同的,此时进行调整,并在所有转换工作完成以后,把转换完成后的信息写入被调用者的指令集的参数ABI位置;

步骤五,在当被调用者返回时,根据步骤三中的信息,开始根据ABI信息读取被调用者的返回信息,如果在不同指令集的ABI下形态不同的,此时进行调整,所有转换工作完成以后,把转换完成后的信息写入调用者的指令集的返回值ABI位置。

8.根据权利要求4所述的高速模拟非目标指令集的方法,其特征在于:在S7步骤中,所述异常Unwind具体包括以下步骤:

步骤一,异常发生时,根据堆栈内容,逐层网上寻找已经注册的异常处理函数;

步骤二,如果当前堆栈所属指令集为目标指令集,则直接交给当前层的异常处理函数处理异常;

步骤三,如果当前堆栈所属的指令集为模拟指令集,则由指令模拟程序模拟执行该异常处理函数;

步骤四,这时重复步骤二与步骤三,直到寻找到一个异常处理函数愿意处理该异常为止。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海芯竹科技有限公司,未经上海芯竹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210789593.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top