Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android反编译与加密(代码混淆)

Android反编译与加密(代码混淆)

作者头像
先知先觉
发布于 2019-01-21 03:44:56
发布于 2019-01-21 03:44:56
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

#反编译 win系统好久不用了而且win系统下的反编译工具和教程一大堆,这里讲讲Mac下反编译工具。 目前,mac下有两款工具不错,分别是Jadx和AndroidDecompiler

这里介绍一下Jadx: Jadx下载地址:https://pan.baidu.com/s/1jH3XUFc

1.下载Jadx 2.运行 bin/jadx-gui ,选择APK文件 3.可以看到Java源码,选择 File -> Save ALL 即可保存文件

#Android 加密 java字节码的特殊性导致Apk被反编译特别简单,上面我们也看到了。因此,为了能够编译好的java class进行保护,通常使用Proguard来对APK进行混淆处理,用无意义的字母来重命名类,字段,方法,属性。当然Proguard不仅仅可以要用来混淆代码,还可以删除无用的类、字段、方法、属性,以及删除没用的注释,最大限度优化字节码文件。 在Android Studio中,可以非常方便的使用ProGuard,在Gradle Scripts文件夹下,打开build.gradle(Moudle:app)文件,显示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	buildTypes{
		release{
			minifyEnable flase
			proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
		}
	}

这里的minifyEnable是控制是否开启ProGuard,属性为true,即可打开ProGuard功能。proguardFiles属性用于配置混淆文件,它分为两个部分,一个是系统默认的混淆文件,它位于<SDK 目录>/tools/proguard/proguard-android.txt目录下,大部分情况使用这个就可以了;后面一部分是项目自定义的混淆文件,可以在项目app下找到这个文件。

这个文件里可以引入第三方依赖包的混淆规则,配好之后导出APK即可生成混淆。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年10月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过Gradle为APK瘦身
ProGuard 是一个Java 工具,其不仅可以缩减APK 文件大小,还可以在编译期优化、混淆和预校验你的代码。其通过你应用的所有代码路径,来找到未被使用的代码,并将其删除。
博文视点Broadview
2020/06/12
8060
android 混淆规则作用,Android代码混淆详解
混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。 所以直观的看,通过混淆可以提高程序的安全性,增加逆向工程的难度,同时也有效缩减了apk的体积。总结如下:
全栈程序员站长
2022/09/02
1.8K0
Gradle for Android简要指南
前言 Android官网构建系统介绍https://developer.android.com/studio/build/index.html
Anymarvel
2018/10/22
8500
Android安全攻防战,反编译与混淆技术完全解析(下)
在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。通过这些内容我们也能看出来,其实我们的程序并没有那么的安全。可能资源被反编译影响还不是很
用户1158055
2018/01/08
1.8K0
Android安全攻防战,反编译与混淆技术完全解析(下)
Android 混淆那些事儿
本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向。 为什么要混淆 我们的apk在打包发布之前,都要进行混淆处理来避免源代码和资源文件被小白用户通过反编译拿到。未混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build—-Analyze APK)直接看到未混淆Apk的源代码和原始的资源文件。对比图如下,从
腾讯Bugly
2018/03/23
3.3K0
Android安全机制之反编译
今天我们就来探讨一下反编译,其实反编译在我一开始学习Android的时候就听说过,但是一直没有去尝试。初次接触应该就是那次“蜻蜓FM v5.0.1 apk”事件了( 此处应有掌声(¯ □ ¯) )。那时根据网上的教程第一次反编译了“蜻蜓FM”的apk,看到了传说中的“普罗米修斯方法”以及“宙斯类”(不得不感慨开发小哥的智商)。之后就是在阅读《Android群英传》时也有相关反编译的内容,觉得有必要记录一下。所以这就是本片写博文的起源了。
俞其荣
2022/07/28
3910
Android安全机制之反编译
Android 代码混淆配置总结[通俗易懂]
为何需要混淆呢?简单的说,就是将原本正常的项目文件,对其类,方法,字段,重新命名,a,b,c,d,e,f…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的,看了也头大。
全栈程序员站长
2022/09/07
3.4K0
Android 代码混淆配置总结[通俗易懂]
31.3k stars的反编译高效工具JADX
![](/Users/mac/Library/Application Support/typora-user-images/image-20220818113017422.png)
开源日记
2023/03/10
1.1K0
31.3k stars的反编译高效工具JADX
Android 混淆是啥玩意儿?
Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目文件,对其类、方法、字段,重新命名a,b,c…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的。
用户5521279
2019/08/28
1.8K0
Android 混淆是啥玩意儿?
android混淆那些坑
ProGuard简介 在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。这里的minifyEnabled即用来控制在编译时是否需要启用Proguard,将minifyEnabled修改为true,即表示启用Proguard。’proguard-android.txt’是Android SDK中自带的一个基本Progurad配置文件,默认是空白的,需要由开发者自行添加哪些需要混淆哪些不混淆,形如: -ignorewarnin
xiangzhihong
2018/02/05
3.3K0
android混淆那些坑
Android gradle 命令行打包
1.项目配置gradle环境 Mac Android开发环境变量的配置(java、sdk、ndk、gradle) gradle -version Permission denied - in mac terminal 2.build.gradle 配置 在项目的build.gradle配置 android { signingConfigs { debug { storeFile file(pStoreFile) storePassw
Jingbin
2019/04/25
1.6K0
混淆技术 发布于 2023年05月30
混淆是一种通过修改程序的源代码或二进制代码,在保障程序的功能不变的基础上,使得代码难以阅读和理解的技术。在Java中,混淆通常用于防止对源代码的逆向工程,从而保护知识产权和商业秘密。常见的Java混淆工具包括ProGuard和JGuard等。这些工具可以自动地对Java字节码进行混淆。
DioxideCN
2023/10/21
5090
混淆技术
                        
                            发布于
                            2023年05月30
【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )
在 build.gradle 中 开启 Proguard , 在编译时 , 会自动进行如下一系列优化 :
韩曙亮
2023/03/29
4.1K0
【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )
Android 代码混淆 混淆方案
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助。
全栈程序员站长
2022/09/02
2.8K0
读懂 Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。
技术小黑屋
2018/09/05
1.7K0
Android 代码混淆规则
Android SDK自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。 ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。它可以将类、字段和方法使用短无意义的名称进行重命名。最后,预校验的Java6或针对Java MicroEdition的所述处理后的码。
全栈程序员站长
2022/08/23
2.6K0
Android Gradle知识梳理
Android Studio已经成为现在Android 开发的主要工具,在开发过程中学习使用gradle显得格外重要,本篇博客,我们一起学习gradle打包的一些知识。
老马的编程之旅
2022/06/22
7620
Android  Gradle知识梳理
042android初级篇之android混淆代码ProGuard
配置文件的位置以及开关的设置位置,android studio 和eclipse稍微有些差异,这里以android sudio为例:
上善若水.夏
2018/09/28
1.1K0
Android混淆你了解多少?
在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的"独特"魅力。
CCCruch
2019/07/25
1.9K0
Android混淆你了解多少?
iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用
在网上搜“代码混淆”关键词,可以看到n多教程。包括本篇博客,大部分重要内容也是从网上各位大神的博客里面看到然后摘取和总结出来的。虽然网上都有,但是对于我个人来说,很难找到一篇博客概括完全的,所以还是总结一下,也算是学习的纪录。
iOS程序应用
2023/12/04
2150
相关推荐
通过Gradle为APK瘦身
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验