代码混淆防止APP被反编译指南
本文来自网易云社区
安卓App安全包含很多内容,包括混淆代码、整体Dex加固、拆分 Dex 加固、虚拟机加固等方面。事实上,这些内容也是国内近几年Android App安全保护的一种主要趋势。
混淆代码
Java代码是非常容易反编译的,作为一种跨平台的、解释型语言,Java 源代码被编译成中间“字节码”存储于class文件中。由于跨平台的需要,这些字节码带有许多的语义信息,很容易被反编译成Java源代码。为了很好地保护Java源代码,开发者往往会对编译好的class文件进行混淆处理。
混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。ProGuard就是一个混淆代码的开源项目,能够对字节码进行混淆、缩减体积、优化等处理。
Proguard处理流程图如下所示,包含压缩、优化、混淆、预检四个主要环节:
1. 压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute);2. 优化(Optimize):对字节码进行优化,移除无用的指令。优化代码,非入口节点类会加上private/static/final,没有用到的参数会被删除,一些方法可能会变成内联代码;
3. 混淆(Obfuscate):使用a、b、c、d这样简短而无意义的名称,对类、字段和方法进行重命名;
4. 预检(Preveirfy):在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。
网易云 Android 应用加固 免费试用,有效防止应用被逆向分析、反编译、二次打包,核心功能包括 DEX 加固,SO 加密保护,内存防 Dump 保护,防调试器,防模拟器等。
相关文章:
【推荐】 网页设计简史看设计&代码“隔膜”
【推荐】 知物由学 | 广告欺诈:如何应对数字广告里分羹者?
【推荐】 BigData – Join中竟然也有谓词下推!?
- 代码混淆防止APP被反编译指南
- AndroidStudio开启代码混淆Progurad功能,防止你的app被反编译
- 如何使用 proguard.jar代码混淆,防止apk被反编译
- 防止APP被反编译,混淆设置
- Android 代码混淆 防止反编译
- 怎么防止别人动态在你程序生成代码(怎么防止别人反编译你的app)
- android 如何防止代码被反编译(代码混淆)
- Proguard android代码混淆 防止反编译
- APP安全之代码混淆防止反编译查看真实的头文件
- android_防止被反编译 混淆
- Android 代码混淆 防止反编译
- 利用预编译指令防止代码重复编译
- 解析Android APP如何防止被反编译
- 【学习】Android代码混淆与反编译
- 如何混淆Android项目代码(ProGuard),防止反编译
- (通用)Android App代码混淆终极解决方案【转】
- Linux 下编译及调试 C 代码的简易指南
- Android App代码混淆终极解决方案
- 一些防止java代码被反编译的方法
- Android APK安全: 代码混淆且加壳防止反编译