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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android 逆向】Dalvik 函数抽取加壳 ( Dalvik 下的函数指令抽取与恢复 | dex 函数指令恢复时机点 | 类加载流程 : 加载、链接、初始化 )

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

文章目錄

  • 前言
  • 一、Dalvik 下的函數指令抽取與恢復
  • 二、dex 函數指令恢復時機點
    • 1、dex 函數指令恢復
    • 2、Android 源碼中搜索 dexFindClass 函數
    • 3、類加載流程 : 加載、鏈接、初始化

前言


函數抽取 加殼 , 是 二代殼 技術 ;





一、Dalvik 下的函數指令抽取與恢復



函數指令 抽取 : 進行函數抽取加殼 , 首先要熟悉 dex 文件的結構 , 需要定位 dex 字節碼文件中 , 函數指令 的偏移地址 ; 將 dex 文件中的函數指令 , 先抽取出來 ;

  • 參考博客 : Android中實現「類方法指令抽取方式」加固方案原理解析 , 作者 姜維 , 同時也是《Android應用安全防護和逆向分析》 作者 ;

函數指令恢復 : 可以選擇在 下面的 222 個時間點 , 恢復函數指令 ;

  • 類加載之前恢復 : 在類加載到內存之前 , 將之前抽取出來的指令 恢復 回去 ; ( 比較簡單 ) ;
    • 參考博客 : Android中實現「類方法指令抽取方式」加固方案原理解析 , 作者 姜維 , 同時也是《Android應用安全防護和逆向分析》 作者 ;
  • 運行時恢復 : 函數運行時 , 通過 HOOK 修改運行時的函數的指令邏輯 ;
    • 參考博客 : Android免Root權限通過Hook系統函數修改程序運行時內存指令邏輯 , 作者 姜維 , 同時也是《Android應用安全防護和逆向分析》 作者 ;
    • 推薦的 HOOK 框架 : https://github.com/ele7enxxh/Android-Inline-Hook , 注意該框架只支持 323232 位模式 ;




二、dex 函數指令恢復時機點



1、dex 函數指令恢復


將 dex 中的函數指令 , 抽取出來后 , 還要在合適的時機 , 將抽取出來的函數指令恢復回去 ;

如果要針對 函數 抽取 加殼 的 應用 , 進行 脫殼 , 需要 找準 函數指令 恢復的時機點 ;


在 《Android中實現「類方法指令抽取方式」加固方案原理解析 | 作者 : 姜維》 博客中 , 選擇的指令還原的時機是 native 層的 dexFindClass 時 ;


( 圖片來自 《Android中實現「類方法指令抽取方式」加固方案原理解析 | 作者 : 姜維》 博客 )


2、Android 源碼中搜索 dexFindClass 函數


在 Android 源碼路徑中 , 搜索上述 dexFindClass 函數 ;

進入 http://androidxref.com/4.4.4_r1 頁面 , 搜索 dexFindClass 函數 , 該函數定義在 dalvik/libdex/DexFile.cpp#dexFindClass 中 ;


3、類加載流程 : 加載、鏈接、初始化


這里在回顧下之前的 類加載 流程 博客 : 【Java 虛擬機原理】Java 類加載過程 ( 加載 | 連接 - 驗證 準備 解析 | 初始化 | 使用 | 卸載 ) , 類加載的過程涉及到 加載 , 鏈接 , 初始化 操作 ;

在上述類加載流程中 , 有很多時機點可以選擇 ;

總結

以上是生活随笔為你收集整理的【Android 逆向】Dalvik 函数抽取加壳 ( Dalvik 下的函数指令抽取与恢复 | dex 函数指令恢复时机点 | 类加载流程 : 加载、链接、初始化 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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