CN110336894B - 一种虚拟机用户空间地址到宿主机内核空间地址转换方法 - Google Patents

一种虚拟机用户空间地址到宿主机内核空间地址转换方法 Download PDF

Info

Publication number
CN110336894B
CN110336894B CN201910548381.XA CN201910548381A CN110336894B CN 110336894 B CN110336894 B CN 110336894B CN 201910548381 A CN201910548381 A CN 201910548381A CN 110336894 B CN110336894 B CN 110336894B
Authority
CN
China
Prior art keywords
address
virtual machine
machine
target
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910548381.XA
Other languages
English (en)
Other versions
CN110336894A (zh
Inventor
赵姗
霍天霖
杨超杰
赵培
岳晓萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201910548381.XA priority Critical patent/CN110336894B/zh
Publication of CN110336894A publication Critical patent/CN110336894A/zh
Application granted granted Critical
Publication of CN110336894B publication Critical patent/CN110336894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提出了一种虚拟机用户空间地址到宿主机内核空间地址转换方法,共分为四个阶段:定位宿主机中虚拟机对应进程、定位虚拟机虚拟内存基址、定位虚拟机中目标进程以及实现虚拟机用户地址到宿主机内核空间地址的转换。本发明能够在宿主机中精确提取目标虚拟机中该进程地址处的数据。

Description

一种虚拟机用户空间地址到宿主机内核空间地址转换方法
技术领域
本发明涉及软件工程技术领域,尤其涉及一种虚拟机用户空间地址到宿主机内核空间地址转换方法。
背景技术
云计算是当前IT行业快速增长领域之一,其将大量计算资源、存储资源与软件资源链接在一起,形成巨大规模共享虚拟资源池,为远程租户提供服务,受到业界以及学术界等各界的关注。
云环境下不同租户之间保持虚拟隔离,以确保不同租户之间数据的私密性,但与物理隔离相比,虚拟隔离的不同租户之间存在隐式资源共享,比如CPU和内存。
目前,云环境下存在一些方法,比如虚拟机逃逸(VM Escape)和Spectre variant2(CVE 2017-5715分支目标注入),这些方法可以实现从虚拟机获取宿主机内核空间数据,但无法对目标虚拟机进行信息获取。
发明内容
本发明提供了一种虚拟机用户空间地址到宿主机内核空间地址转换方法,可以实现虚拟机内核空间地址到宿主机内核空间地址的转换,解决了定位目标虚拟机、定位目标虚拟机中目标进程以及对目标虚拟机进行信息获取的问题。
本发明采用的技术方案如下:
一种虚拟机用户空间地址到宿主机内核空间地址转换方法,包括以下步骤:
1)通过宿主机内核空间找到目标虚拟机对应进程的信息,定位宿主机中目标虚拟机对应进程;
2)通过目标虚拟机对应进程的信息,在宿主机中定位宿主机为目标虚拟机分配的虚拟内存基址;
3)通过虚拟内存基址实现目标虚拟机内核空间地址到宿主机内核空间地址的转换,定位目标虚拟机中目标进程;
4)根据获取的宿主机中目标虚拟机对应进程、目标虚拟机虚拟内存基址和目标虚拟机中目标进程的信息,实现目标虚拟机用户空间地址到宿主机内核空间地址的转换。
进一步地,在步骤1)中,所述目标虚拟机对应进程的信息包括目标虚拟机对应进程的task_struct结构体地址和控制寄存器CR3的值。
进一步地,在步骤1)中,采用从逆序遍历双向循环进程链的方法定位宿主机中目标虚拟机对应进程。
进一步地,在步骤2)中,采用对虚拟区的红黑树组织和双向链表组织交叉遍历的方法定位目标虚拟机虚拟内存基址。
进一步地,在步骤3)中,定位目标虚拟机中目标进程包括以下步骤:
1)将目标虚拟机内核空间地址转换为对应的虚拟内存地址;
2)将虚拟内存地址转换为宿主机用户空间地址;
3)宿主机用户空间地址通过小页模式下的Linux系统四级走表得到对应的物理地址;
4)将所述物理地址转换为宿主机内核空间地址;
5)根据宿主机获取的目标虚拟机内核空间地址数据,通过从逆序遍历双向循环进程链的方法定位目标虚拟机中的目标进程。
进一步地,所述Linux系统四级走表为在x86_64架构下,Linux系统采用四级页表,页表基址通过mm_struct结构体中的pgd成员获得。
进一步地,在步骤4)中,通过以下步骤实现目标虚拟机用户空间地址到宿主机内核空间地址的转换:
1)确定kvm结构体对象地址;
2)确定目标进程影子页表基址;
3)利用影子页表进行地址转换。
进一步地,所述影子页表基址由kvm模块管理,kvm_arch结构体中保存KVM虚拟机(Kernel-based Virtual Machine,基于内核的虚拟机)中页表和MMU(Memory ManagementUnit,内存管理单元)运行时状态信息,成员mmu_page_hash表示一个哈希表,哈希地址=CR3&((1<<10)-1),参数是目标虚拟机中目标进程的CR3。
进一步地,所述哈希地址的地址冲突采用链地址法解决。
进一步地,一种虚拟机用户空间地址到宿主机内核空间地址的地址转换系统,包括:
1)定位宿主机中虚拟机对应进程模块,用以在宿主机内核空间找到目标虚拟机对应进程的task_struct结构体地址以及CR3;
2)定位虚拟机虚拟内存基址模块,用以在宿主机中找到宿主机为目标虚拟机分配的虚拟内存基址;
3)定位虚拟机中目标进程模块,用以找到目标虚拟机中目标进程的task_struct结构体地址以及CR3;
4)虚拟机用户地址到宿主机内核空间地址的转换模块,用以利用获取到的信息实现目标虚拟机用户空间地址到宿主机内核空间地址的转换。
本发明的有益效果如下:
由于宿主机和虚拟机共享物理内存,利用本发明实现虚拟机中某进程的用户空间地址到宿主机内核空间地址的转换之后,就可以在宿主机中精确提取虚拟机中该进程地址处的数据。当前,云计算受到业界以及学术界等各界的关注,本发明结合微架构侧信道漏洞SpectreV2或虚拟机逃逸可以实现云环境下对目标虚拟机进行信息获取。
附图说明
图1.虚拟用户空间地址到宿主机内核空间地址转换流程图;
图2.进程双向循环链表组织结构图;
图3.虚拟区链式组织方式图;
图4.虚拟区红黑树组织方式图;
图5.虚拟机内核空间地址转宿主机内核空间地址图;
图6.Linux系统打开文件的管理图;
图7.影子页表基址管理图;
图8.对目标虚拟机信息获取实验结果显示图。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步详细说明。
图1显示了虚拟用户空间地址到宿主机内核空间地址转换流程,首先是输入要转换的源地址,即虚拟机用户空间地址然后读取配置文件并初始化,接着执行定位宿主机中虚拟机对应进程、定位虚拟机虚拟内存基址、定位虚拟机中的目标进程以及实现虚拟机用户地址到宿主机内核空间地址的转换,最后输出转换后的目标地址。
1.定位宿主机中虚拟机对应进程
当在宿主机中启动虚拟机时,会在宿主机中创建一个对应的标准进程,该进程会被Linux内核的进程管理模块所管理,当使用kill命令终止该进程时,虚拟机也会被关闭。图2显示了所有进程task_struct结构体组织成的双向循环链表,在关闭内核随机化后,0号进程的task_struct地址是固定的。由于进程链前面的进程大部分是系统进程,虚拟机对应的进程通常在进程链后半部分,为了提高查找效率,本发明采用从逆序遍历双向循环进程链的技术方案。list_head结构体是Linux内核用来创建双向循环链表的数据结构,具体定义为struct list_head{list_head*next,*prev;},next指向下一个节点,prev指向前一个节点。所有进程task_struct也是通过list_head结构体组织成双向循环链表。comm用以记录不包括执行路径的可执行文件的名字。通过遍历如图2所示的双向循环链表,并在遍历过程中通过comm值判断是否是为目标进程task_struct结构体,从而获得虚拟机对应进程的task_struct结构体信息。
2.定位虚拟机虚拟内存基址
在Linux系统虚拟空间管理中,虚拟区共有两种组织方式:链式和红黑树。虚拟内存位于虚拟机对应进程的某一虚拟区(virtual memory area)中,但一个进程拥有较多的离散虚拟区,为了提高查找效率,本发明采用对虚拟区的红黑树组织和双向链表组织交叉遍历的技术方案。图3显示了虚拟区链式组织方式,mm是task_struck结构体中的指针,指向对应的mm_struct结构体,mm_struct结构体中的mmap成员是离散虚拟区链式组织结构入口,vm_area_struct结构体中vm_start成员记录虚拟区的起始位置,vm_end成员记录虚拟区的结束位置,通过这两个成员可计算出虚拟区的大小。vm_area_struct结构体中vm_next成员指向下一个节点,vm_prev成员指向前一个节点,通过这两个成员我们可以实现虚拟区向后或向前的遍历。图4显示了虚拟区红黑树组织方式,其在图3所示的链式组织方式下,新增了红黑树节点入口,mm_struct结构体中mm_rb成员是离散虚拟区红黑树组织结构入口,vm_area_struct结构体成员vm_rb关联着红黑树节点,rb_node结构体中rb_right成员指向节点右孩子,rb_left成员指向节点左孩子。
基于上述虚拟区管理方式并结合图4,定位虚拟机虚拟内存基址基本思想是:当遍历到某个红黑树节点时,再从该节点出发,尽可能向后或向前遍历链表,直到遍历失败或成功找到目标虚拟区。若失败,访问下一个红黑树节点,重复上述操作,其中对红黑树的遍历采用层次遍历。
3.定位虚拟机中的目标进程
由于进程的task_sruct结构体保存在内核空间,所以定位虚拟机中的目标进程的核心是实现虚拟机内核空间地址到宿主机内核空间地址的转换,从而在宿主机中可以提取虚拟机内核空间数据。在内核空间中,虚拟地址和物理地址之间是线性映射关系,图5中PAGE_OFFSET表示该线性偏移量,在关闭内核随机化的前提下,如果虚拟地址属于内核代码映射区域,PAGE_OFFSET的值为0xFFFFFFFF80000000,如果虚拟地址属于直接映射区域,PAGE_OFFSET的值为0xFFFF880000000000。图5显示虚拟机内核空间地址到宿主机内核空间地址的转换。
首先得到源地址对应的虚拟内存地址GPA,由于它们之间是线性映射关系,源地址减PAGE_OFFSET即可得到虚拟内存地址GPA,具体转换公式如下所示。
Figure BDA0002104677140000051
然后得到GPA对应的宿主机用户空间地址HVA,GPA加上虚拟机虚拟内存基址即可得对应的宿主机虚拟地址HVA。在定位虚拟机虚拟内存基址部分我们研究了获取该虚拟内存基址的方法,将该虚拟内存的基址标记为VMA_BASE,故HVA=GPA+VMA_BASE。
接着得到HVA对应的物理地址HPA,Linux虚拟存储管理采用页表机制使进程可以独占整个虚拟地址空间,每个进程都拥有自己的页表,页表中存储了虚拟地址和物理地址之间的映射关系。在x86_64架构以及开启小页模式下,Linux系统采用四级页表,页表基址可以通过task_struct→mm_struct→pgd获得,x86_64架构仅支持64位虚拟地址中低48位,高16位作为符号扩展,在4K页面下,48位线性地址分为5段,位宽度分别是9、9、9、9、12。HVA通过四级走表即可得HPA。
最后得到该物理地址HPA对应的宿主机内核空间地址,由于它们之间是线性映射关系,物理地址加PAGE_OFFSET即可得内核空间地址,此处将物理地址转换成内核空间中直接映射区域中的地址,转换公式为:目标地址=HPA+0xFFF880000000000。至此实现了源地址到目标地址的转换,即虚拟机内核空间地址到宿主机内核空间地址的转换。
实现了地址转换也就意味着在宿主机中可以获取虚拟机内核空间地址数据,可根据宿主机获取的虚拟机内核空间地址数据,通过上述从逆序遍历双向循环进程链的技术方案定位虚拟机中的目标进程。
4.实现虚拟机用户地址到宿主机内核空间地址的转换
在KVM内存虚拟化技术中影子页表机制可以实现虚拟机用户空间地址到对应物理地址的直接转换,所以本节要解决的核心问题是如何模拟影子页表运行过程。通过模拟影子页表运行过程实现地址转换共分三步。
首先要确定kvm结构体对象地址,图6显示了Linux系统打开文件的管理,files_struct是文件描述符结构,file是打开的文件描述符结构,每个打开的文件都对应一个该结构,fdtable是文件描述符表,用于所有打开文件的管理。在图6中,struct file结构体成员private_data保存了自定义设备结构体地址,用于连接不同的设备文件。kvm驱动也将虚拟机对应的kvm结构体对象地址保存到private_data中。
其次确定相应进程影子页表基址,图7描述了kvm模块对影子页表基址的管理,kvm_arch(支持arch的kvm)结构体中保存了KVM虚拟机中页表和MMU等运行时状态信息,成员mmu_page_hash表示一个哈希表,哈希地址=CR3&((1<<10)-1),参数是虚拟机中目标进程的CR3,CR3的值可以通过task_struct→mm_struct→pgd获得,哈希地址冲突采用链地址法解决。kvm_mmu_page结构体是影子页表页管理结构,其中spt(shadow page table)指向影子页表基址。
最后实现地址的转换。有了虚拟机中目标进程对应的影子页表基址,虚拟机用户空间地址通过走影子页表即可得到对应的物理地址,由于内核空间地址和物理地址之间是线性映射关系,在关闭内核随机化的前提下,物理地址加上偏移量0xFFF880000000000即可得到对应的宿主机内核空间中直接映射区域中的地址。
对本发明的实验验证:
实验环境采用
Figure BDA0002104677140000061
CoreTMi7-4790四核处理器,内存12G,Cache 8MB,宿主机内核Linux 4.9.0-3-amd64,虚拟机内核Linux 4.12.7-amd64,操作系统为核高基桌面操作系统基础版CDOS3.0 64bit。在图8中,宿主机中运行着虚拟机A和虚拟机B两台虚拟机,虚拟机B中运行测试程序,并输入Welcome to CPU*OS!,在虚拟机A中运行根据本发明并结合SpectreV2实现的跨虚拟机信息获取工具,从图8中可以看出,在虚拟机A中已经成功获取到虚拟机B中输入的数据,从而验证了本发明的可行性。
本发明方法适用于宿主机使用KVM虚拟化技术的Linux操作系统,虚拟机为非特定对象的Linux操作系统(特定对象指虚拟机仅仅运行特定的服务),当然可能由于Linux内核版本不同,具体转换过程稍有变化,但也属于本发明保护的范围。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (9)

1.一种虚拟机用户空间地址到宿主机内核空间地址转换方法,包括以下步骤:
1)通过宿主机内核空间找到目标虚拟机对应进程的信息,定位宿主机中目标虚拟机对应进程;
2)通过目标虚拟机对应进程的信息,在宿主机中定位宿主机为目标虚拟机分配的虚拟内存基址;
3)通过虚拟内存基址实现目标虚拟机内核空间地址到宿主机内核空间地址的转换,定位目标虚拟机中目标进程;
4)根据获取的宿主机中目标虚拟机对应进程、目标虚拟机虚拟内存基址和目标虚拟机中目标进程的信息,实现目标虚拟机用户空间地址到宿主机内核空间地址的转换;
其中,采用红黑树组织和双向链表组织交叉遍历的方法定位宿主机为目标虚拟机分配的虚拟内存基址,包括:
a)在内存描述符结构体中增设一离散虚拟区红黑树组织结构入口mm_rb成员,在虚拟内存区域结构体中增设一关联着红黑树节点的成员vm_rb,红黑树结构体中rb_right成员指向节点右孩子,rb_left成员指向节点左孩子;
b)采用层次遍历方法,逐一遍历到所有红黑树节点时,再从vm_rb成员出发,向后或向前遍历链表,直到遍历失败或成功找到目标虚拟区;
c)通过目标虚拟区定位宿主机为目标虚拟机分配的虚拟内存基址。
2.如权利要求1所述的方法,其特征在于,在步骤1)中所述目标虚拟机对应进程的信息包括目标虚拟机对应进程的进程描述符结构体地址和3号控制寄存器的值。
3.如权利要求1所述的方法,其特征在于,在步骤1)中采用从逆序遍历双向循环进程链的方法定位宿主机中目标虚拟机对应进程。
4.如权利要求1所述的方法,其特征在于,在步骤3)中,定位目标虚拟机中目标进程包括以下步骤:
1)将目标虚拟机内核空间地址转换为对应的虚拟内存地址;
2)将虚拟内存地址转换为宿主机用户空间地址;
3)宿主机用户空间地址通过小页模式下的Linux系统四级走表得到对应的物理地址;
4)将所述物理地址转换为宿主机内核空间地址;
5)根据宿主机获取的目标虚拟机内核空间地址数据,通过从逆序遍历双向循环进程链方法定位目标虚拟机中的目标进程。
5.如权利要求4所述的方法,其特征在于,所述Linux系统四级走表为在x86_64架构下,Linux系统采用四级页表,页表基址通过内存描述符结构体中的pgd成员获得。
6.如权利要求1所述的方法,其特征在于,在步骤4)中,通过下述步骤实现目标虚拟机用户空间地址到宿主机内核空间地址的转换:
1)确定kvm结构体对象地址;
2)确定目标进程影子页表基址;
3)利用影子页表进行地址转换。
7.如权利要求6所述的方法,其特征在于,所述影子页表基址由kvm模块管理,kvm_arch结构体中保存KVM虚拟机中页表和内存管理单元MMU运行时状态信息,成员mmu_page_hash表示一个哈希表,哈希地址=CR3&((1<<10)-1),参数是目标虚拟机中目标进程的CR3,其中CR3为3号控制寄存器。
8.如权利要求7所述的方法,其特征在于,所述哈希地址的地址冲突采用链地址法解决。
9.一种虚拟机用户空间地址到宿主机内核空间地址的地址转换系统,包括:
1)定位宿主机中虚拟机对应进程模块,用以在宿主机内核空间找到目标虚拟机对应进程的进程描述符结构体地址以及3号控制寄存器;
2)定位虚拟机虚拟内存基址模块,用以在宿主机中找到宿主机为目标虚拟机分配的虚拟内存基址;
3)定位虚拟机中目标进程模块,用以找到目标虚拟机中目标进程的进程描述符结构体地址以及3号控制寄存器;
4)虚拟机用户地址到宿主机内核空间地址的转换模块,用以利用获取到的信息实现目标虚拟机用户空间地址到宿主机内核空间地址的转换;
其中,通过以下步骤定位宿主机为目标虚拟机分配的虚拟内存基址:
a)在内存描述符结构体中增设一离散虚拟区红黑树组织结构入口mm_rb成员,在虚拟内存区域结构体中增设一关联着红黑树节点的成员vm_rb,红黑树结构体中rb_right成员指向节点右孩子,rb_left成员指向节点左孩子;
b)采用层次遍历方法,逐一遍历到所有红黑树节点时,再从vm_rb成员出发,向后或向前遍历链表,直到遍历失败或成功找到目标虚拟区;
c)通过目标虚拟区定位宿主机为目标虚拟机分配的虚拟内存基址。
CN201910548381.XA 2019-06-24 2019-06-24 一种虚拟机用户空间地址到宿主机内核空间地址转换方法 Active CN110336894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910548381.XA CN110336894B (zh) 2019-06-24 2019-06-24 一种虚拟机用户空间地址到宿主机内核空间地址转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910548381.XA CN110336894B (zh) 2019-06-24 2019-06-24 一种虚拟机用户空间地址到宿主机内核空间地址转换方法

Publications (2)

Publication Number Publication Date
CN110336894A CN110336894A (zh) 2019-10-15
CN110336894B true CN110336894B (zh) 2021-03-30

Family

ID=68142668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910548381.XA Active CN110336894B (zh) 2019-06-24 2019-06-24 一种虚拟机用户空间地址到宿主机内核空间地址转换方法

Country Status (1)

Country Link
CN (1) CN110336894B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190752B (zh) * 2019-12-30 2023-04-07 海光信息技术股份有限公司 虚拟机共享内核内存的方法及装置
CN111459849B (zh) * 2020-04-20 2021-05-11 网易(杭州)网络有限公司 一种内存的设置方法及装置、电子设备、存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598303B (zh) * 2013-10-31 2018-04-10 中国电信股份有限公司 基于kvm的虚拟机间在线迁移方法与装置
US9798567B2 (en) * 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US10853118B2 (en) * 2015-12-21 2020-12-01 Intel Corporation Apparatus and method for pattern-driven page table shadowing for graphics virtualization
CN107341115B (zh) * 2017-06-30 2021-07-16 联想(北京)有限公司 虚拟机内存访问方法、系统和电子设备
CN108037980B (zh) * 2018-01-02 2023-03-14 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质
CN108446160A (zh) * 2018-01-29 2018-08-24 中国电子科技网络信息安全有限公司 一种虚拟机隐藏进程检测方法及系统

Also Published As

Publication number Publication date
CN110336894A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
US11061833B2 (en) Apparatus and method for handling page protection faults in a computing system
US6820255B2 (en) Method for fast execution of translated binary code utilizing database cache for low-level code correspondence
Yaniv et al. Hash, don't cache (the page table)
KR101441188B1 (ko) 가상 시스템에서 메모리 중복 제거를 위한 기술
US7805710B2 (en) Shared code caching for program code conversion
JP6091598B2 (ja) ハイブリッド・アドレス変換のためのシステム、方法、およびコンピュータ・プログラム(ハイブリッド・アドレス変換)
US10635420B2 (en) Overriding a migrated method in an updated type
JP2019528515A (ja) アプリケーションバイナリコードの更新バージョンに関するターゲットアプリケーション機能の仮想メモリアドレスの更新
US20150301841A1 (en) Binary translation reuse in a system with address space layout randomization
CN110336894B (zh) 一种虚拟机用户空间地址到宿主机内核空间地址转换方法
US10635472B2 (en) Import mechanism for hardware intrinsics
CN113574512A (zh) 页表结构
KR101200083B1 (ko) Risc 프로세서 장치 및 그의 명령어 어드레스의 전환 룩업 방법
Romano et al. Expression reduction from programs in a symbolic binary executor
Huang et al. Profile-guided optimisation for indirect branches in a binary translator
US9632755B1 (en) Interface method resolution in object oriented programming models
Wang et al. A binary translation backend registers allocation algorithm based on priority
US11513954B2 (en) Consolidated and concurrent remapping and identification for colorless roots
US20220308871A1 (en) Implementing state-based frame barriers to process colorless roots during concurrent execution
US20220308933A1 (en) Tracking frame states of call stack frames including colorless roots
D’monte ELF-based code storage support for the Eclipse OMR Ahead-of-Time compiler: a WebAssembly use case
Lan et al. LAST: An Efficient In-place Static Binary Translator for RISC Architectures
Zhang et al. A New Method of Live Tracking of Process Memory
Tempel et al. BinSym: Binary-Level Symbolic Execution using Formal Descriptions of Instruction Semantics
BR112019001479B1 (pt) Detecção baseada em núcleo de funcionalidade de aplicação alvo utilizando mapeamento de endereços virtuais

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant