android代码混淆android开发代码混淆都混淆哪些

android代码混淆  时间:2021-06-23  阅读:()

什么是代码混淆?andriod和android-studio工程如何启用代码混淆功能

展开全部   代码混淆有两种重要功能。

其一,混淆代码。

其二,优化代码。

  进行代码混淆的程序被称为代码混淆器(混淆工具)。

进行代码混淆的意义主要在于对代码进行一定程度的加密。

  在android 2.3之后,sdk中就已经集成了混淆器proguard(目录在sdk oolsproguard),所以我们可以很方便的直接在工程中开启代码混淆。

  eclipse android工程开启混淆功能,我们需要手动在项目文件.properties(我的是project.properties文件)中添加下面的代码   # To enable ProGuard to shrink and obfuscate your code, ment this (available properties: sdk.dir, user.home):   proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt   某些方式创建的项目中可能已经有如上两行了,只是默认被注释掉了,只要把proguard.config这一行解注释就好了。

这样代码混淆功能就开启了,在打签名包时,项目会自动进行代码混淆。

android中哪些东西不能做代码混淆

常见的不能混淆的AndroidCodeAndroid 程序 ,下面这样代码混淆的时候要注意保留。

  Android系统组件,系统组件有固定的方法被系统调用。

  被Android Resource 文件引用到的。

名字已经固定,也不能混淆,比如自定义的View 。

  Android Parcelable ,需要使用android 序列化的。

  其他Anroid 官方建议 不混淆的,如   android.app.backup.BackupAgentHelper   android.preference.Preference  .android.vending.licensing.ILicensingService   Java序列化方法,系统序列化需要固定的方法。

  枚举 ,系统需要处理枚举的固定方法。

  本地方法,不能修改本地方法名   annotations 注释   数据库驱动   有些resource 文件   用到反射的地方

android 怎么实现只混淆自己的代码,而不混淆第3方jar包

混淆打包流程:   1.在proguard-project.txt文件中添加不需要混淆的类和第三方的jar包         这个是保持自己包中不需要混淆的类,如果有些类调用了jni也不需要混淆,不然会出错。

还有如果项目中有其他项目作为library引入,那这些项目的一些类也不能混淆。

  这个是保持项目中的第三方jar不混淆      另外加上上面几句话,不然会在控制台中报warning警告      2.在project.properties文件中把proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 前的#号去掉      最后导出签名包就可以了

android开发代码混淆都混淆哪些

代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。

其解释如下:程序P经过混淆变换为P‘,若P没有结束或错误结束,那么P’也不能结束或错误结束;而且P‘程序的结果应与程序P具有相同的输出。

否则P’不是P的有效的混淆。

  目前对于混淆的分类,普遍是以Collberg 的理论为基础,分为布局混淆(layout obfuscation)、数据混淆(data obfuscation)、控制混淆(control obfuscation)和预防混淆(preventive obfuscation)这四种类型。

? 1. 布局混淆   布局混淆是指删除或者混淆软件源代码或者中间代码中与执行无关的辅助文本信息,增加攻击者阅读和理解代码的难度。

软件源代码中的注释文本、调试信息可以直接删除,用不到的方法和类等代码或数据结构也可以删除,这样即可以使攻击者难以理解代码的语义,也可以减小软件体积,提高软件装载和执行的效率。

软件代码中的常量名、变量名、类名和方法名等标识符的命名规则和字面意义有利于攻击者对代码的理解,布局混淆通过混淆这些标识符增加攻击者对软件代码理解的难度。

标识符混淆的方法有多种,例如哈希函数命名、标识符交换和重载归纳等。

哈希函数命名是简单地将原来标识符的字符串替换成该字符串的哈希值,这样标识符的字符串就与软件代码不相关了;标识符交换是指先收集软件代码中所有的标识符字符串,然后再随机地分配给不同的标识符,该方法不易被攻击者察觉;重载归纳是指利用高级编程语言命名规则中的一些特点,例如在不同的命名空间中变量名可以相同,使软件中不同的标识符尽量使用相同的字符串,增加攻击者对软件源代码的理解难度。

布局混淆是最简单的混淆方法,它不改变软件的代码和执行过程。

? 2. 数据混淆   数据混淆是修改程序中的数据域,而对代码段不作处理。

常用的数据混淆方式有合并变量、分割变量、数组重组、字符串加密等。

  合并变量是将几个变量合并为一个数据,原来的每个变量占据其中一个区域,类似于一个大的数据结构。

分割变量则是将一个变量分割为两个变量,对分割前后提供一种映射关系,将对一个变量的操作转化为对分割后两个变量的操作。

  数组重组有数组的分割、合并、折叠和平滑等几种方式。

分割是将一个数组分成2个或多个相同维度的数组;合并则相反;折叠是增加数组的维数;平滑则是相反。

  在ELF文件中,全局变量和常量字符串存放在数据段中,反汇编工具可以轻易查找到字符串与代码之间的引用关系。

在软件破解中,通过一些字符串提示可以很方便的找到代码关键语句,从而破解软件。

字符串加密则可以对这些明显的字符串进行加密存储,在需要时再进行解密。

? 3. 控制混淆   控制混淆也称流程混淆,它是改变程序的执行流程,从而打断逆向分析人员的跟踪思路,达到保护软件的目的。

一般采用的技术有插入指令、伪装条件语句、断点等。

伪装条件语句是当程序顺序执行从A到B,混淆后在A和B之间加入条件判断,使A执行完后输出TRUE或FALSE,但不论怎么输出,B一定会执行。

  控制混淆采用比较多的还有模糊谓词、内嵌外联、打破顺序等方法。

  模糊谓词是利用消息不对称的原理,在加入模糊谓词时其值对混淆者是已知的,而对反混淆者却很难推知。

所以加入后将干扰反汇编者对值的分析。

模糊谓词的使用一般是插入一些死的或不相关的代码(bogus code),或者是插入在循环或分支语句中,打断程序执行流程。

  内嵌(in-line)是将一小段程序嵌入到被调用的每一个程序点,外联(out-line)是将没有任何逻辑联系的一段代码抽象成一段可被多次调用的程序。

打破顺序是指打破程序的局部相关性。

由于程序员往往倾向于把相关代码放在一起,通过打破顺序改变程序空间结构,将加大破解者的思维跳跃。

? 4. 预防混淆   预防混淆一般是针对专用的反编译器设计的,目的就是预防被这类反编译器反编译。

他是利用特定的反编译器或反混淆器的弱点进行专门设计。

预防混淆对于特定的反编译器非常有效,所以在使用时要综合利用各种反编译器的特点进行设计。

域名注册需要哪些条件(新手注册域名考虑的问题)

今天下午遇到一个网友聊到他昨天新注册的一个域名,今天在去使用的时候发现域名居然不见。开始怀疑他昨天是否付款扣费,以及是否有实名认证过,毕竟我们在国内域名注册平台注册域名是需要实名认证的,大概3-5天内如果不验证那是不可以使用的。但是如果注册完毕的域名找不到那也是奇怪。同时我也有怀疑他是不是忘记记错账户。毕竟我们有很多朋友在某个商家注册很多账户,有时候自己都忘记是用哪个账户的。但是我们去找账户也不办...

创梦网络-四川一手资源高防大带宽云服务器,物理机租用,机柜资源,自建防火墙,雅安最高单机700G防护,四川联通1G大带宽8.3W/年,无视UDP攻击,免费防CC

? ? ? ?创梦网络怎么样,创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以****,属于一手资源,高防机柜、大带宽、高防IP业务,另外创梦网络近期还会上线四川联通大带宽,四川联通高防IP,一手整CIP段,四川电信,联通高防机柜,CN2专线相关业务。成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快...

Boomer.Host(年付3.5美)休斯敦便宜VPS

Boomer.Host是一家比较新的国外主机商,虽然LEB自述 we’re now more than 2 year old,商家提供虚拟主机和VPS,其中VPS主机基于OpenVZ架构,数据中心为美国得克萨斯州休斯敦。目前,商家在LET发了两款特别促销套餐,年付最低3.5美元起,特别提醒:低价低配,且必须年付,请务必自行斟酌确定需求再入手。下面列出几款促销套餐的配置信息。CPU:1core内存:...

android代码混淆为你推荐
中国万维网中国互联网之都有哪些?mergefield邮件合并中如何插入百分数4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?素数算法(c语言)求快速算素数的方法。sdfsdfsdfsdf小米手机投诉热线网络安全密钥一般路由器是网络安全密钥是多少腾讯合作伙伴大会腾讯的合作伙伴都有腾讯合作伙伴大会从微信同程旅行买的机票怎么打印电子发票?flash序列号急求flash序列号particular教程particular的用法
域名服务器 vps优惠码cnyvps 香港加速器 vps.net godaddy主机 wavecom 网通服务器ip java虚拟主机 智能骨干网 idc资讯 1g空间 广州服务器 www789 广州虚拟主机 后门 七牛云存储 好看的空间 博客域名 贵州电信 windowsserver2012r2 更多