arm32下物件陣列的逆向分析

2021-07-10 13:35:49 字數 1119 閱讀 8525

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的編譯有兩種方式,第一種...