日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 逆向】加壳技术简介 ( 动态加载 | 第一代加壳技术 - DEX 整体加固 | 第二代加壳技术 - 函数抽取 | 第三代加壳技术 - VMP / Dex2C | 动态库加壳技术 )

發布時間:2025/6/17 Android 25 豆豆

文章目錄

  • 一、動態加載
  • 二、第一代加殼技術 ( DEX 整體加固 )
  • 三、第二代加殼技術 ( 函數抽取 )
  • 四、第三代加殼技術 ( Java 函數 -> Native 函數 )
  • 五、so 動態庫加殼





一、動態加載



動態加載 : 調用 Java 類時 , 使用到的時候 , 才從 DEX 字節碼文件中加載對應的字節碼類 ;


熱修復 , DEX 加殼 , 插件化 , 都必須使用動態加載技術 ;


動態加載 的 Java 類只能完成一般的函數調用 , 如果加載的是一個 Activity 組件類 , 加載的類不具有組件生命周期的特性 , 不能當做正常的組件使用 ;

如果要正常使用 動態加載 的組件類 , 則需要對類加載器修正 , 有 222 種修正方法 ;

  • 替換 LoadedApk 的類加載器 : 【Android 逆向】啟動 DEX 字節碼中的 Activity 組件 ( 替換 LoadedApk 中的類加載器 | 加載 DEX 文件中的 Activity 類并啟動成功 )
  • 在 PathClassLoader 和 BootClassLoader 之間插入 DexClassLoader : 【Android 逆向】啟動 DEX 字節碼中的 Activity 組件 ( 在 PathClassLoader 和 BootClassLoader 之間插入 DexClassLoader )




二、第一代加殼技術 ( DEX 整體加固 )



第一代加殼技術 :

  • DEX 字節碼文件整體加密
  • 使用自定義 DexClassLoader 加載 DEX 文件

第一代殼的特征 : 在內存中 , DEX 文件是整體的連續的內存塊 , 如果找到了 DEX 文件的起始地址 , 可以很容易將整個 DEX 文件 dump 下來 ;

DEX 脫殼加載方案 :

  • 文件加載 : 通過監控文件訪問記錄 , 也可以找到 DEX 文件 ;
  • 內存加載 : 內存中的 DEX 文件是完整的 , 也可以從內存中加載 DEX 文件 ;

保護粒度是 DEX 整體文件 ;





三、第二代加殼技術 ( 函數抽取 )



第二代加殼技術DEX 文件整體進行了保護 , 將其中的 關鍵代碼抽取到外部 , DEX 加載到內存中后 , 不是完整的 DEX 文件 , 即使將整個 DEX 文件 DUMP 下來之后 , 其中的一些被抽取出來的關鍵代碼無法看到 , 也就是 DEX 文件中的關鍵類或方法是空的 ;

第二代殼的特征是 內存中的 DEX 數據不是連續的 ;

DexHunter 工具 可以遍歷內存中所有類信息 , 將 DEX 完整的拼接出來 , 得到一個完整的 DEX 類 ;


保護的粒度由 DEX 細化為每個函數 ; 破解者可以將 DEX 文件拿到 , 但是其中的關鍵函數是空的 ;





四、第三代加殼技術 ( Java 函數 -> Native 函數 )



第三代加殼技術 : 將 Java 函數轉為 Native 函數 ;

  • VMP 加殼
  • Dex2C / Java2C

該類型的加殼保護效果是最強的 , 多數加固廠商的此類加殼都是需要付費的 ;





五、so 動態庫加殼



so 動態庫加殼 :

  • 基于 init , init_array , JNI_Onload 函數進行加殼 ;
  • 基于 自定義 linker 進行加殼 ;

總結

以上是生活随笔為你收集整理的【Android 逆向】加壳技术简介 ( 动态加载 | 第一代加壳技术 - DEX 整体加固 | 第二代加壳技术 - 函数抽取 | 第三代加壳技术 - VMP / Dex2C | 动态库加壳技术 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。