幾維so檔案加殼初步分析
這是早期分析的一點點幾維中的so檔案加殼,沒分析完,好像也現在很少看到他們用了,也沒時間看,以下是之前分析的:
一、分析篇:
首先看到核心的函式全部變成了以下這種形式:
So加殼的話,首先定位到.init_proc這個匯出函式中,去分析:
通過靜態分析可知道:加固完以後幾個So檔案的主要功能如下:
libkwscr.so:主要是程式crash記錄函式;
libkwscmm.so:載入so檔案提供環境以及初始化,還有幾維的SDK函式,對於程式crash報告記錄;
libkwslinker.so:幾維的自定義linker,也是核心的So檔案;
libbug.so :應用級的So被幾維加固處理過的So檔案;
init_proc函式的主要功能如下:
從上面可以知道接下來主要是分析:kiwisec_13141688和kiwisec_13141688這兩個函式,後面會詳細的介紹。
KiwiSecLoader函式如下,主要是判斷是Dalvik虛擬機器還是ART虛擬機器,然後建立java虛擬機器執行環境。
進去看kiwisec_44這個函式:
接著進去分析ikiwiInit這個函式。
接著去分析看ikiwiCrashInit這個函式
接著去分析initAttacker這個函式,以下是攻擊檢測的分析的具體體現。
接著去分析libkwslinker.so中的kiwisec_1314168
接著去分析sub_6138這個函式,函式的具體功能如下:
Sub_5F90這個函式的具體功能如下:
總的來說初步的分析kiwisec_1314168這個函式的主要作用是進行符號查詢的一個過程.
我們知道在載入過程即可放在載入器的init_array 中,也可放入
JNI_OnLoad中,但是在libkwslinker.so的匯出函式中沒有發現JNI_Onload函式,因此很有可能是在.init_array處進行的,因此可以看到如下:
通過呼叫去分析這幾個函式,很多的迴歸到到這個函式:
沒有看出其實質性的作用:
由於在之前執行的時候都用到了其他的So檔案因此,可以看一下其它幾個So檔案中.init_array中的相關內容。
首先是看libkwscmm.so的相關函式
從上面的大致分析,可以看到跟去分析處理應用函式沒有關係。
接著看libkwscr.so中的.init_array的相關函式
接著進行分析。