zoukankan      html  css  js  c++  java
  • Android反编译与防止反编译

    1、Android反编译
         1)下载两个工具  dex2jar,jar2java,相关阅读下载见:http://www.linuxidc.com/Linux/2011-02/32775.htm
         2)修改apk后缀为.zip,解压得classes.dex
         3)用dex2jar.bat打开classes.dex得到classes.dex.dex2jar.jar
    4)用jar2java打开上面得到的jar包即得Java文件
    2、Android防止反编译
    这里介绍的Android反编译工具是ProGuard。
    ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/
    Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。
    ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等。
    Android Eclipse开发环境与ProGuard在Android 2.3以前,混淆Android代码只能手动添加proguard来实现代码混淆,非常不方便。而2.3以后,Google已经将这个工具加入到了SDK的工具集里。具体路径:SDK oolsproguard。
    当创建一个新的Android工程时,在工程目录的根路径下,会出现一个proguard的配置文件proguard-project.txt。我们可以通过简单的配置,在elipse工程中直接使用ProGuard混淆Android工程。
    使用方法:
    1)打开project.properties
    2)找到这句话
         #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
         把前面的"#"去掉
          但是我在使用的时候不能只是还原注释,只有将这句话 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 放在target=android-17之后,才能生成apk.否则不能导出,报错:failed to export application,可能使SDK版本问题。
    3)Android tools --> Export Application Package
    3、对比
    未使用Proguard,反编译的结果
    使用Proguard后,反编译的结果
  • 相关阅读:
    Jmeter响应断言的处理。
    Jmeter超时处理。
    HTTP协议简介以及特点。
    自动化测试面试技巧。
    父类构造方法有无参数对子类的影响。
    自动化分层思想分析1.
    设计模式
    遍历课程列表代码。
    如何遍历当前页课程定位分析,以及代码编写。
    “笨方法”学习Python笔记(1)-Windows下的准备
  • 原文地址:https://www.cnblogs.com/leihupqrst/p/3158423.html
Copyright © 2011-2022 走看看