0
我想知道如果我可以将加密的类或jar文件附加到我的apk和应用程序内解密类/ jar文件,然后使用DexClassLoader加载该类?使用DexClassLoader加载加密类
我想知道如果我可以将加密的类或jar文件附加到我的apk和应用程序内解密类/ jar文件,然后使用DexClassLoader加载该类?使用DexClassLoader加载加密类
有可能,请参阅here了解更多基本信息,我所做的是更改prepareDex函数以解密文件并将其保存到本地。继承人的代码的一部分,以通过反射加载类:
final File optimizedDexOutputPath = getDir("outdex", Context.MODE_PRIVATE);
final File dexInternalStoragePath = new File(getDir("dex", Context.MODE_PRIVATE),
SECONDARY_DEX_NAME);
// Initialize the class loader with the secondary dex file.
DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),
optimizedDexOutputPath.getAbsolutePath(), null, getClassLoader());
try {
@SuppressWarnings("unchecked")
final Class<Object> obj = (Class<Object>) cl.loadClass("com.packagename.Classname");
final Constructor<Object> constr = obj.getConstructor(Activity.class, String.class, Handler.class);
myInstance = constr.newInstance(this, mString, mHandler);
Method doSomething;
try {
doSomething = v.getMethod("YOURMETHOD");
doSomething.invoke(myInstance);
}
}
我还中省略所有渔获但是这些应该很容易生成/句柄。