1. 程式人生 > >幾維so檔案加殼初步分析

幾維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的相關函式

接著進行分析。