0x0 概述
最近學習arm32的逆向分析,寫了一些**,對照著彙編看。下邊分析了物件陣列的彙編實現。
0x1 c語言
c語言**如下:
#include class cnumber
~cnumber()
int m_nnumber;
float m_fnumber;
};int main(int argc,char **argv)
}
0x2 物件陣列的分配
彙編如下:
物件陣列的的記憶體結構是首先儲存物件的大小,然後緊跟物件陣列的個數,後邊才是每乙個物件,其記憶體結構如下:
sizeof(cnumber)
3cnumber[0]
cnumber[1]
cnumber[2]
這裡說一句,一般r11輔助定址時,有很大可能就是乙個物件。
0x3 建構函式
建構函式的識別有以下幾點:1.第乙個呼叫的函式。2.傳入this指標。3.返回this指標。建構函式的彙編如下:
0x3析構函式
呼叫析構函式時,就用到了物件陣列儲存的物件個數,然後呼叫每乙個物件的析構函式。
呼叫delete[]的時候傳入的位址為物件陣列的位址。如果分配了物件陣列,呼叫了delete而不是得delete[]的話,就會忽略掉物件陣列的前兩個元素,會出現問題。
0x5總結
寫的東西比較基礎,主要是用來備忘,打好基本功。
arm32頁表對映過程(一)
在完成前面memory size的初始化之後,下面就是頁表的映 具體過程如下 start kernel setup arch paging init void init paging init const struct machine desc mdesc 1 主要是mem type的初始化。2 呼...
ARM32入門學習筆記之 GPIO庫
函式名描述 gpio init 根據gpio initstruct中指定的引數初始化外設gpiox暫存器 gpio readinputdatabit 讀取指定埠管腳的輸入 gpio readinputdata 讀取指定的gpio埠輸入 gpio readinputdatabit 讀取指定埠管腳的輸出...
cmake 交叉編譯 x265到 arm32庫
搞了好幾天一直有問題,告訴我編譯器找不到,一直認為只要使用ndk裡面的編譯器就行了,但一直出問題,原來不是這樣的,要再裝乙個交叉編譯器,還以為搞不定了,幸好啊 arm linux gcc v檢視有沒有安裝成功 3 現在開始修改x265的cmakelist.txt資訊,x265的編譯有兩種方式,第一種...