【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、加殼特征識別
- 1、函數抽取 與 Native 化加殼的區分
- 2、VMP 加殼與 Dex2C 加殼的區分
一、加殼特征識別
1、函數抽取 與 Native 化加殼的區分
函數抽取 與 Native 化加殼的區別 :
- 函數抽取 : 沒有將函數 Java 代碼轉為 Native 代碼 , 函數體無效 ;
- VMP 加殼 : 將函數 Java 代碼轉為 Native 代碼 ;
- Dex2C 加殼 : 將函數 Java 代碼轉為 Native 代碼 ;
如果函數是 非 Native 函數 , 并且 函數體 無效 , 說明這是 函數抽取 加殼 ;
如果函數是 Native 函數 , 說明這是 VMP 加殼 或者 Dex2C 加殼 ;
2、VMP 加殼與 Dex2C 加殼的區分
VMP 殼的核心原理是 Dalvik 解釋器 , 對于每個 VMP 保護的函數來說 , 都有一個 VMP 解釋器 ; 只有一個解釋器 , 所有的函數共享這個解釋器 ; 這樣就導致了 每個函數的邏輯都很相似 ;
函數的注冊地址相同 ;
Dex2C 殼對每個 Java 函數進行詞法句法分析 , 生成對應的 C 代碼 , 然后編譯成 so 動態庫 , 每個函數的內容都是不同的 ;
函數的注冊地址不同 ;
VMP 加殼與 Dex2C 加殼的區分 :
-
函數的 注冊地址相同 , 并且 函數邏輯相似 , 則使用的是 VMP 加殼 ;
-
函數的 注冊地址不同 , 并且 函數邏輯不相似 , 則使用的是 Dex2C 加殼 ;
總結
以上是生活随笔為你收集整理的【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】加壳技术简介 (
- 下一篇: 【Android 逆向】整体加固脱壳 (