arm64 頁表對映

2021-08-20 01:27:42 字數 757 閱讀 6502

armv8最多支援48根位址,4級頁表,這樣最多支援user space和kernnel space 分別是256tb

其中user space佔據低端位址

kernel可以支援48/42/39 根位址

# config_arm64_va_bits_39 is not set

config_arm64_va_bits_48=y

最多四級頁表

config_pgtable_levels=4

可以支援4k/16k/64k的pages

unsigned long virt, phys_addr_t size,

pgprot_t prot,

phys_addr_t (*pgtable_alloc)(void),

int flags)

while (pgdp++, addr = next, addr != end);

這裡會建立pgd,每個pgd表示的範圍用pgdir_size 用來表示,在va=48bit,levels等於4的情況下。

pgditr_size 是512gb,pud_size等於1g,pmd_szie等於2m。page_size等於4k。因為pmd_size等於2m。

所以hugepage 最小size等於2m

其中ptrs_per_pdg/pud/pmd/pte 都等於512.

在對映的時候每個階段都會按照size 作為步長來優化,例如pgd的步上就是pgditr_size等於512gb

arm64入棧出棧 棧 ARM64

棧 棧 是一種具有特殊的訪問方式的儲存空間 後進先出,last in out firt,lifo sp和fp暫存器 sp暫存器在任意時刻會儲存我們棧頂的位址.fp暫存器也稱為x29暫存器屬於通用暫存器,但是在某些時刻我們利用它儲存棧底的位址 注意 arm64開始,取消32位的 ldm,stm,pus...

ARM64除錯環境

自從上一次zctf做了一道arm64的逆向題目後,我決定記錄下利用qemu搭建arm64的環境的過程,以後肯定會遇到更多arm平台下的reverse和pwn。我要模擬的是64位的arm環境,所以需要使用的是qemu system aarch64。在kali下,使用apt get install qe...

Arm64彙編 BFXIL指令

下屬專案 測試用例數量 問題背景無0 解決方法無1 總結無0復現一套加密演算法時,遇到了bfxil指令。ida中顯示情況如下 bfxil w9,w16,2 2 ida使用fn f5操作得到偽 如下 v4 v4 v8 0xfc 2 3 其中v4就是w9,v8 0xfc 這個整體就是w16,定義如下 u...