linux ARM64开启kaslr地址转换

我的未来我决定 提交于 2020-03-07 23:53:58

开启kaslr后,kernel image 在vmalloc区域. 运行地址与链接地址会有一个offset

 

addr_run = addr_link + offset //开启KASLR
addr_run = addr_link + _text - (KIMAG_VADDR+TEXT_OFFSET)//_text为重定向后的值
addr_link = addr_run - _text_start + (vmalloc_start+TEX_OFFSET)//ARM64 KIMAGE_VADDR==vmalloc_start

kimage_vaddr= _text - TEXT_OFFSET //如果开启KASLR后,_text会重定向,

kimage_voffset //kernel image虚拟地址-kernel image物理地址

kaslr_offset= kimage_vaddr - KIMAGE_VADDR
memstart_addr //the base of physical memory
#define KERNEL_START            _text
#define KERNEL_END              _end
#define PAGE_OFFSET             ((-1)<<VA_BITS)//PAGE_OFFSET - the virtual address of the start of the linear map

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!