linux ARM64开启kaslr地址转换

开启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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值