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. 预防混淆   预防混淆一般是针对专用的反编译器设计的,目的就是预防被这类反编译器反编译。

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

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

易探云美国云服务器评测,主机低至33元/月,336元/年

美国服务器哪家平台好?美国服务器无需备案,即开即用,上线快。美国服务器多数带防御,且有时候项目运营的时候,防御能力是用户考虑的重点,特别是网站容易受到攻击的行业。现在有那么多美国一年服务器,哪家的美国云服务器好呢?美国服务器用哪家好?这里推荐易探云,有美国BGP、美国CN2、美国高防、美国GIA等云服务器,线路优化的不错。易探云刚好就是做香港及美国云服务器的主要商家之一,我们来看一下易探云美国云服...

MineServer:洛杉矶CN2 GIA VPS/512MB内存/20GB NVME/800GB流量/200Mbps/KVM,58元/季

mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,之前介绍过几次,最近比较活跃。这家新推出了洛杉矶CN2 GIA VPS,512MB内存/20GB NVME/800GB流量/200Mbps/KVM,58元/季,并且进行了带宽升级,同时IP更改为美国IP。点击...

GreenCloudVPS($30/年),500G大硬盘VPS,10Gbps带宽

GreenCloudVPS最近在新加坡DC2节点上了新机器,Dual Xeon Silver 4216 CPU,DDR4内存,10Gbps网络端口,推出了几款大硬盘VPS套餐,基于KVM架构,500GB磁盘起年付30美元。除了大硬盘套餐外,还加推了几款采用NVMe硬盘的常规套餐,最低年付20美元。不过需要提醒的是,机房非直连中国,尤其是电信用户ping值感人,包括新加坡DC1也是如此。大硬盘VPS...

android代码混淆为你推荐
素数算法(c语言)求快速算素数的方法。youtube创始人鬼步舞创作者是谁pat是什么格式怎么将自己做的PS图片保存为PAT格式?举报非法网站如何举报非法网站?netbios协议tcp/ip、ipx/spx、netbios这三个通信协议的区别微信网页版登陆首页微信网页版怎么用?微信网页版怎么登陆?云办公平台云办公平台对企业办公有什么好处呢?怎样删除聊天记录自己已发出的微信聊天记录怎样删除才不会让对方看见泛微协同办公系统泛微OA系统怎么创建新人员pass是什么在英语里pass是什么意思
ip反查域名 x3220 回程路由 灵动鬼影 骨干网络 免费私人服务器 申请免费空间和域名 域名dns 西安主机 测速电信 域名和主机 卡巴斯基官网下载 globalsign 免费网站加速 德国代理 linux命令vi qq空间打开慢 厦门电信网上营业厅 摇号申请网站 免费网络推广软件 更多