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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章