APP的混淆加固及反编译

  混淆用于让apk被反编译后获取的代码难理解,加固用于让apk难于被反编译。两种操作都是对项目的安全措施,两个操作是不冲突的,可以选择其一,也可以两个操作都做。

混淆:
针对项目代码,代码混淆通常将代码中的各种元素(变量、函数、类名等)改为无意义的名字,使得阅读的人无法通过名称猜测其用途,增大反编译者的理解难度。
虽然代码混淆可以提高反编译的门槛,但是对开发者本身也增大了调试除错的难度。开发人员通常需要保留原始未混淆代码用于调试。
操作时机:项目打包时
操作方法:Android Studio中找到你的项目module的build.gradle,将minifyEnabled设置为true
加固:
针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码混淆。
操作时机:项目打包成的apk文件
操作方法:使用360加固或者梆梆助手、 key.store文件取
Android Studio下生成的 此加固工具还可以设置多渠道打包标识

APP的混淆加固及反编译

 

 

反编译工具:

     三大神器:apktool  、dex2jar-2.0、jd-gui

一、apktool篇

1、apktool:在文件目录下敲cmd,进入控制台,然后输入 apktool d  XXX.APK (要反编译的apk)

APP的混淆加固及反编译 

 

 

 

 2、会在目录下生成对应apk的文件目录

APP的混淆加固及反编译

 

 

 3、此目录下就可以对反编译的文件修改

  可以修改图片和页面布局、通过 AndroidManifest.xml文件找到对应的activity入口

APP的混淆加固及反编译

 

 

APP的混淆加固及反编译

 

 

 4、将包的内容修改为自己定义的后,重新打包生成新的apk

输入命令:apktool b [ 修改后的文件夹 ] -o [ 输出文件名 ]

APP的混淆加固及反编译

 

 

 以上 就通过反编译,修改得出一个新包

 

二、dex2jar-2.0篇

此工具可以将apk解析为jar包

1、将需要反编译的apk后缀修改为zip,然后解压

APP的混淆加固及反编译

 

 

 2、将解压后的文件夹,找到classes.dex文件。  在此工具目录下运行 d2j-dex2jar.bat classes.dex 得到classes-dex2jar.jar

APP的混淆加固及反编译

 

 

 3、得到jar包

APP的混淆加固及反编译

 

 

 4、对jar进行解析源码、    使用到下面的jd-gui工具

 

三、jd-gui篇

双击exe文件,将jar包拖进去就可以解析源码

APP的混淆加固及反编译

 

 

 APP的混淆加固及反编译

 

 

 

 

 

 

 

 

 

 

 

 

APP的混淆加固及反编译

上一篇:asp.net core 获取appsettings.json里的配置


下一篇:数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试