【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 准备 DEX 字节码文件 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 准备 DEX 字节码文件 )
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 一、DexClassLoader 構(gòu)造函數(shù)簡(jiǎn)介
- 二、準(zhǔn)備 DEX 文件
一、DexClassLoader 構(gòu)造函數(shù)簡(jiǎn)介
DexClassLoader 構(gòu)造函數(shù)如下 :
/*** 創(chuàng)建一個(gè){@code-DexClassLoader}來查找解釋的和本機(jī)的* 密碼解釋類可以在包含的一組DEX文件中找到* 在Jar或APK文件中。** <p>使用指定的字符分隔路徑列表* {@code path.separator}系統(tǒng)屬性,默認(rèn)為{@code:}。** @param dexPath 包含類和* 資源,由{@code File.pathSeparator}分隔,其中* Android上的默認(rèn)值為{@code”:“}* @param optimizedDirectory 目錄,其中包含優(yōu)化的dex文件* 應(yīng)該是書面的;不能為{@code null}* @param librarySearchPath 包含本機(jī)* 庫(kù),由{@code File.pathSeparator}分隔;可能是* {@code null}* @param parent 父類加載器*/public DexClassLoader(String dexPath, String optimizedDirectory,String librarySearchPath, ClassLoader parent) {super(dexPath, new File(optimizedDirectory), librarySearchPath, parent);}源碼路徑 : /libcore/dalvik/src/main/java/dalvik/system/DexClassLoader.java
DexClassLoader 構(gòu)造函數(shù) 參數(shù) :
- String dexPath : 要加載的 DEX 或 JAR 格式字節(jié)碼的路徑 ;
- String optimizedDirectory : 優(yōu)化目錄 , 加載 zip 或 apk 文件 , 需要對(duì) dex 優(yōu)化生成 odex , 優(yōu)化后的文件需要存放在該優(yōu)化目錄中 ;
- String librarySearchPath : 相關(guān)函數(shù)庫(kù)搜索路徑 , 如果沒有引用外部函數(shù)庫(kù) , 可以設(shè)置為 null ;
- ClassLoader parent : 父節(jié)點(diǎn)類加載器 ,
二、準(zhǔn)備 DEX 文件
在 Android Studio 工程中 , 創(chuàng)建 Module ,
并在其中 , 設(shè)置一個(gè)測(cè)試類 , 之后要使用 DexClassLoader 加載該 DEX 字節(jié)碼文件 ,
package com.example.dex_demo;import android.util.Log;/*** 測(cè)試 DEX 字節(jié)碼加載并執(zhí)行*/ public class DexTest {public void test(){Log.i("DexTest", "DexTest : Hello World!!!");} }選擇 " 菜單欄 / Build / " 編譯程序 , 生成 APK 文件 ;
編譯后的 dex_demo-debug.apk 文件 , 在當(dāng)前位置解壓 , 獲取其中的 classes.dex 字節(jié)碼文件 ;
將該 DEX 文件拷貝到 主應(yīng)用的 assets 目錄下 ;
總結(jié)
以上是生活随笔為你收集整理的【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 准备 DEX 字节码文件 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Git】Git 标签使用 ( 创建并查
- 下一篇: 【Android 逆向】类加载器 Cla