android 混淆 Android混淆技术

Android混淆技术――简介

Android混淆是Android开发者经常使用的一种用于防止被反编译的常见手法。Android开发基于java语言的,很容易被别人反编译出来,一下就相当于裸奔了,特别是用于商业用途的时候,防止反编译是必要的措施。而Android混淆的确可以保证Android源代码的一定安全。

android 混淆 Android混淆技术
Android混淆技术――Android混淆技术

Android混淆技术 1、

Java类名、方法名混淆

Dalvik字节码包含了大量的调试信息,如类名、方法名、字段名、参数名、变量名等,使用反编译工具可以还原这些信息。由于类名、方法名等通常都会遵循一定的命名规范,破解者很容易根据这些信息来猜测代码功能,阅读起来就跟查看源代码一样。从Android2.3开始,Google在SDK中加入了一款叫ProGuard的Android混淆工具,ProGuard会删除这些调试信息,并用无意义的字符序列来替换类名、方法名等,使得使用反编译出来的代码难以阅读,提升逆向难度。使用ProGuard对Android混淆过后,反编译出来的类名和方法名无法阅读,但是反编译出来的功能代码仍然是非常容易阅读的,和源代码差不多,破解者仍通过阅读功能代码来自行标记类名、方法名等,然后逆向破解。


Android混淆技术 2、

Java代码混淆

通过对功能代码流程进行乱序混淆,实际运行时乱序Android混淆后的代码流程却和原始代码流程是一样的,但反编译出来的代码流程静态阅读时与原始流程有很大差异,使破解者很难通过静态分析理解代码功能,从而保护Android混淆代码不被逆向分析。比如,原始的代码流程是1->2->3->4->5->6->7,经过乱序Android混淆后静态反汇编查看到的代码流程可能变成2->7->5->1->6->4->3,实际运行时代码流程仍然是1->2->3->4->5->6->7。


Android混淆技术 3、

Dalvik字节码加密

将dex文件中的部分或全部Dalvik字节码加密,Android混淆,每次需要执行时由专门的Native代码负责动态解密和回填,静态反编译出来的代码已经无法阅读甚至无法反编译,动态调试也难以逆向分析。目前有这一技术的有 爱 加 密。


Android混淆技术 4、

Androidapk加密

Android混淆可以保证源代码的一定安全,但是并不全面。Androidapk加密技术包括:DEX加壳保护,DEX指令动态加载保护和高级源码混淆保护。其中DEX加壳保护通过将DEX文件隐藏,并生成一个类似于虚像的壳文件,阻止黑客利用反编译工具获取App源码。另外,爱 加 密 独有的so库保护,使得C/C++层面的代码安全也得到防护。加上资源文件保护(图片、音频等文件的防查看和防修改)、xml主配文件保护(对主配文件进行二次签名)、内存保护等措施,可以基本保证App的动态和静态安全。

  

爱华网本文地址 » http://www.aihuau.com/a/8104080103/172562.html

更多阅读

纠正乳头混淆全攻略 怎么矫正乳头混淆

原文地址---母乳喂养大本营halolo首先说,为什么纠正乳头混淆如此重要。有的妈妈觉得,母乳瓶喂不是一样么,还省得纠正乳头混淆让孩子哭哭啼啼的。母乳喂养难道只是喂孩子食物么?难道只需要考虑营养因素么?母乳的好处,除了营养,其他全都是和

分类器评价参数之混淆矩阵 分类器评价

在机器学习中,常常需要对学习算法性能进行评估,自然需要建立一些评估准则。参考http://www2.cs.uregina.ca/~dbd/cs831/notes/confusion_matrix/confusion_matrix.html中的描述,一个比较简单的描述是混淆矩阵(confusionmatrix)。它是这

最易与重晶石混淆的矿物——天青石 剑三天青石哪里多

在岩石薄片鉴定时,最易与重晶石混淆的矿物是天青石。很多人在镜下第一次看到天青石时,可能首先想到的便是重晶石,它们二者有时相似到必须要用火焰试验才可区分的地步。首先看一组充填于白云岩晶间孔中的天青石的照片:1 天青石12 天青

声明:《android 混淆 Android混淆技术》为网友夲亼光锟分享!如侵犯到您的合法权益请联系我们删除