1. 程式人生 > >ARM 架構

ARM 架構

code 需要 目的 決定 程序計數器 內存 計數器 頂部 有一種

ARM有16個通用寄存器, R0-R15, 5個用於特殊目的, R11(幀指針, FP), R12(過程內寄存器, IP), R13(棧指針, SP), R14(鏈接寄存器, LR), R15(程序計數器, PC)

其中SP是保存指向堆棧頂部的指針的寄存器 , LR是當程序進入子過程時存儲返回地址 , PC是存儲要執行的下一條指令 (因為流水線的原因, PC將總是指向要執行的指令而非下一條)

ARM有兩種基本指令模式, Thumb模式下, 大部分指令是16位, ARM模式下, 指令全是32位, 但是還有一種混合模式 Thumb-2, 這是Thumb與ARM模式的混合, 執行模式由 CPSR 寄存器中的狀態決定

大多數基於ARM平臺的設備中,內存中的區域是不可執行的, 這將阻止我們放置並執行shellcode, 為了實現shellcode類似的需要使用導向式編程(ROP), 它是來自內存不同部分的指令片段的簡單鏈接

ARM 架構