【Android 逆向】ARM CPU 架构体系 ( ARM 内存模型 | ARM 架构堆的实现 | ARM 架构栈的实现 )
文章目錄
- 一、ARM 內存模型
- 二、ARM 架構堆的實現
- 三、ARM 架構棧的實現
一、ARM 內存模型
ARM 架構體系中 , CPU 直接訪問內存 , 控制內存中的狀態和數據 , 內存中映射外部設備 , 外設通過內存中的狀態數據改變外設內部的情況 ;
如 : CPU 讀取硬盤數據 , 首先訪問內存中的對應內存塊 A , 內存塊向硬盤控制器發送命令 , 硬盤控制器將數據取出放到另外一塊內存 B 中 , 通過內存狀態轉換 , 告知內存已經讀取完畢 , CPU 可以直接訪問內存中內存塊 B 中的數據 ;
所有的外設基本都有一塊屬于自己的內存 , 有的時在內存中映射的 , 有的自帶內存 , 如顯卡顯存 ;
二、ARM 架構堆的實現
應用程序 向 系統 請求內存 , 系統通過系統調用 , 分配內存 , 內存分配完畢后 , 返回內存的首地址給應用程序 ;
申請完內存后 , 需要 free 釋放內存 , 否則會造成泄漏 ;
三、ARM 架構棧的實現
如果參數小于等于 333 個 , 則只需要使用 R0 , R1, R2 這 333 個寄存器存放參數 , 這 333 個寄存器變相的稱為了棧 ;
如果參數大于等于 444 個 , 則 R3 寄存器記錄棧地址 ( 棧的起始位置 ) , 如下圖所示 ;
在 ARM 中 , 棧指針只會 push 到寄存器中 , 但是不使用 ; 使用到棧中的參數時 , 會使用變量寄存器將棧地址保存起來 , 使用變量寄存器中的地址 ;
總結
以上是生活随笔為你收集整理的【Android 逆向】ARM CPU 架构体系 ( ARM 内存模型 | ARM 架构堆的实现 | ARM 架构栈的实现 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】ARM CPU
- 下一篇: 【Android 逆向】x86 汇编 (