zoukankan      html  css  js  c++  java
  • APP的混淆加固及反编译

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

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

    反编译工具:

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

    一、apktool篇

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

     

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

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

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

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

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

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

    二、dex2jar-2.0篇

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

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

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

     3、得到jar包

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

    三、jd-gui篇

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

     以下为反编译的源码 

  • 相关阅读:
    hadoop面试时的一些问题解答
    FTRL(Follow The Regularized Leader)学习总结
    循环神经(LSTM)网络学习总结
    深度学习中常用的激活函数
    TF.learn学习
    TensorFlow实现分布式计算
    TensorFlow TensorBoard使用
    深度学习总结
    Spark SQL相关总结
    推荐系统/广告系统索引目录
  • 原文地址:https://www.cnblogs.com/jsondai/p/11814408.html
Copyright © 2011-2022 走看看