Android上,怎么用16进制加密apk的dex文件让别人无法反编译或进内部查看原代码

如题所述

可以在Dex文件头隐藏另一个DEX数据并在运行时加载附带DEX数据。
构建非规范的Dex文件
通过反射调用DexFile类的方法加载附带DEX数据
通过反射实际调用DexFile的openDexFile方法

该种方式允许通过byte[]解析dex数据,而无须在再把DEX数据存储在设备的某个文件。
可以从安装APK文件、内存或dalvik-cache等读取dex数据。
该种方式将给自动化分析工具带来一个问题,自动化工具会按照dex格式处理DEX文件而不会处理附带的dex数据。需要特定的工具、16进制编辑器或手工提取嵌入的dex数据。
我们可以采用各种不同的方式增加嵌入数据的提取难度,比如:
对嵌入的DEX数据进行加密;
嵌入的DEX数据加密后在对其进行ZIP压缩;
使用native代码解密,直接从内存加载;
......等等

该种隐藏方式可以通过判断Dex文件头长度是否大于0x70检测。追问

谢谢,开完了

来晚了

温馨提示:答案为网友推荐,仅供参考
相似回答