你的位置:首页 > 软件开发 > 操作系统 > apk 加密

apk 加密

发布时间:2015-08-31 17:00:37
为了防止apk被轻易破解,想办法对java层的代码进行加密,防止反编译,代码混淆基本没什么效果,一般情况下我会对dex进行加密,通过动态加载的方法实现java层的代码尽量被隐藏,而动态加载的实现通过jni来完成,最大化的保护代码安全,其实java层这个时候只剩下继承于Applic ...

为了防止apk被轻易破解,想办法对java层的代码进行加密,防止反编译,代码混淆基本没什么效果,一般情况下我会对dex进行加密,通过动态加载的方法实现java层的代码尽量被隐藏,而动态加载的实现通过jni来完成,最大化的保护代码安全,其实java层这个时候只剩下继承于Application的启动类。

.h文件

 1 #ifndef __ANDROID_JNI_BOOT_HELPER_H__ 2 #define __ANDROID_JNI_BOOT_HELPER_H__ 3  4 #include <jni.h> 5 #include <string> 6 #include "android/asset_manager.h" 7 #include "android/asset_manager_jni.h" 8  9 typedef struct JniMethodInfo_10 {11   JNIEnv *  env;12   jclass   classID;13   jmethodID  methodID;14 } JniMethodInfo;15 16 class JniBootHelper17 {18 public:19   static void       setJavaVM(JavaVM *javaVM);20   static JavaVM*     getJavaVM();21   static JNIEnv*     getEnv();22 23   static bool       setassetmanager(jobject activityinstance);24   static AAssetManager*  getAssetManager() { return _assetmanager; }25 26   static bool       setFileDir(jobject activityinstance);27   static bool       setCacheDir(jobject activityinstance);28 29   static bool       loadDexFile(jobject context,30                     const char* dexPath, 31                     const char* dexOptDir);32 33   static bool       loadClass(jobject context);34 35   static jobject     invokeStaticMethod(JNIEnv *env, 36                         const char* className, 37                         const char* methodName, 38                         jobjectArray pareTyple, 39                         jobjectArray pareVaules);40 41   static jobject     getFieldOjbect(JNIEnv *env, 42                      const char* className, 43                      const char* fieldName,44                       jobject obj);45   static void       setFieldOjbect(JNIEnv *env, 46                      const char* className, 47                      const char* fieldName, 48                       jobject obj, 49                       jobject filedVaule);50 51   static std::string   jstring2string(jstring str);52 53   static std::string FileDir;54   static std::string CacheDir;55 56 private:57   static JNIEnv*     cacheEnv(JavaVM* jvm);58 59   static bool       getMethodInfo(JniMethodInfo &methodinfo,60                     const char *className,61                     const char *methodName,62                     const char *paramCode);63 64   static JavaVM*     _psJavaVM;65   static AAssetManager*  _assetmanager;66   static jmethodID    _loadclassMethod_methodID;67   static jobject     _classloader;68 };69 70 #endif // __ANDROID_JNI_BOOT_HELPER_H__

原标题:apk 加密

关键词:加密

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。