91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 211KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-21
  • 語言: Java
  • 標簽: Dex加載??JNI??APK加固??

資源簡介

http://blog.csdn.net/csdn49532/article/details/50624627 配套代碼,使用JAVA和JNI二種方法動態加載dex,調用dex中的方法,對android APK進行加固,防止APK被破解。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?“JNIUtil.h“
#include?
#include?
#include?
#include?
extern?“C“
{
string?copyDexToData(JNIEnv*?env?jobject?asset?string?dexName
string?dataPath);
void?Java_com_example_dexload_NativeLoad_loadDex(JNIEnv*?env?jobject?obj
jstring?dexName?jstring?dataPath?jobject?asset)
{
JavaVM*?jvm;
env->GetJavaVM(&jvm);
JNIUtil::SetJavaVm(jvm);
JNIUtil?util;
string?strDexName?=?util.Jstring2String(dexName);
string?strdataPath?=?util.Jstring2String(dataPath);
string?strDexPath?=?copyDexToData(env?asset?strDexName?strdataPath);
string?strDestDexPath?=?strdataPath?+?“/cache“;
LOGI(“%s“strDexPath.c_str());
LOGI(“%s“strDestDexPath.c_str());
jstring?jDexPath?=?util.String2Jstring(strDexPath.c_str());
jstring?jDestDexPath?=?util.String2Jstring(strDestDexPath.c_str());
//查找ClassLoader類并調用靜態方法獲取系統的classloader對象
jclass?classloaderClass?=?env->FindClass(“java/lang/ClassLoader“);
jmethodID?getsysloaderMethod?=?env->GetStaticMethodID(classloaderClass
“getSystemClassLoader“?“()Ljava/lang/ClassLoader;“);
jobject?loader?=?env->CallStaticobjectMethod(classloaderClass
getsysloaderMethod);

//查找DexClassLoader類并且創建對象生成優化后的dex
jclass?dexLoaderClass?=?env->FindClass(“dalvik/system/DexClassLoader“);
jmethodID?initDexLoaderMethod?=?env->GetMethodID(dexLoaderClass?“
“(Ljava/lang/String;Ljava/lang/String;“
“Ljava/lang/String;Ljava/lang/ClassLoader;)V“);
jobject?dexLoader?=?env->Newobject(dexLoaderClass?initDexLoaderMethod
jDexPath?jDestDexPath??NULL?loader);

//賦值給java端的DexClassLoader對象
jclass?native?=?env->GetobjectClass(obj);
jfieldID?loadID?=?env->GetFieldID(native?“mDex“
“Ldalvik/system/DexClassLoader;“);
env->SetobjectField(obj?loadID?dexLoader);
}
void?Java_com_example_dexload_NativeLoad_test(JNIEnv*?env?jobject?obj
jobject?ac)
{

//獲取java端的ClassLoader對象
jclass?native?=?env->GetobjectClass(obj);
jfieldID?loadID?=?env->GetFieldID(native?“mDex“
“Ldalvik/system/DexClassLoader;“);
jobject?load?=?env->GetobjectField(obj?loadID);

//調用ClassLoader的方法loadClass加載dex中的Test1類
jclass?classloaderClass?=?env->GetobjectClass(load);
jmethodID?loadClassMethod?=?env->GetMethodID(classloaderClass?“loadClass“
“(Ljava/lang/String;)Ljava/lang/Class;“);
JNIUtil?util;
jstring?Test1ClassName?=?util.String2Jstring(“com.example.dextest.Test1“);
jclass?javaClientClass?=?(jclass)?env->CallobjectMethod(load
loadClassMethod?Test1ClassName);

//創建Test1類的對象并且調用其中的test方法
jmethodID?initFuncTest?=?env->GetMethodID(javaClientClass?““?“()V“);?//構造函數ID
jobject?objTest1?=?env->Newobject(javaClientClass?initFuncTest);
jmethodID?Test_method?=?env->GetMethodID(javaClientClass?“test“
“(Landroid/app/Activity;)V“);
if?(Test_method?!=?NULL)
env->CallVoidMethod(objTest1?Test_method?ac);
}
st

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????475??2015-12-23?10:31??DexLoad\.classpath
?????文件????????3699??2015-12-31?15:09??DexLoad\.cproject
?????文件????????1467??2015-12-31?15:09??DexLoad\.project
?????文件????????1104??2016-02-01?16:22??DexLoad\AndroidManifest.xml
?????目錄???????????0??2016-01-29?11:27??DexLoad\assets\
?????文件????????1856??2016-01-29?11:27??DexLoad\assets\test.dex
?????文件???????51394??2015-12-23?10:31??DexLoad\ic_launcher-web.png
?????目錄???????????0??2016-02-02?16:55??DexLoad\jni\
?????文件?????????199??2016-02-02?17:03??DexLoad\jni\Android.mk
?????文件??????????75??2016-02-02?16:57??DexLoad\jni\Application.mk
?????文件????????3915??2016-02-02?17:38??DexLoad\jni\DexLoad.cpp
?????文件????????1875??2016-02-02?17:06??DexLoad\jni\JNIUtil.cpp
?????文件?????????610??2016-02-02?17:04??DexLoad\jni\JNIUtil.h
?????文件?????????781??2015-12-23?10:31??DexLoad\proguard-project.txt
?????文件?????????563??2015-12-23?10:31??DexLoad\project.properties
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\drawable-hdpi\
?????文件????????7658??2015-12-23?10:31??DexLoad\res\drawable-hdpi\ic_launcher.png
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\drawable-ldpi\
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\drawable-mdpi\
?????文件????????3777??2015-12-23?10:31??DexLoad\res\drawable-mdpi\ic_launcher.png
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\drawable-xhdpi\
?????文件???????12516??2015-12-23?10:31??DexLoad\res\drawable-xhdpi\ic_launcher.png
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\drawable-xxhdpi\
?????文件???????24777??2015-12-23?10:31??DexLoad\res\drawable-xxhdpi\ic_launcher.png
?????目錄???????????0??2015-12-23?10:32??DexLoad\res\layout\
?????文件?????????335??2015-12-23?10:31??DexLoad\res\layout\activity_main.xml
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\menu\
?????文件?????????369??2015-12-23?10:31??DexLoad\res\menu\main.xml
?????目錄???????????0??2015-12-23?10:31??DexLoad\res\values\
?????文件?????????220??2015-12-23?10:31??DexLoad\res\values\dimens.xml
............此處省略47個文件信息

評論

共有 條評論