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\tools\proguard。
当创建一个新的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后,反编译的结果

最新文章

  1. Android手机越用越卡?
  2. JVM-内存管理
  3. 生产uuid
  4. color 和 mode
  5. ARM、Intel、MIPS处理器啥区别?看完全懂了【转】
  6. android开发实现静默安装(fota升级)
  7. (六)Ireport制作一个规范的报表,处理数据格式
  8. Asp.net多行文本框随内容增加而高度增加
  9. [App]华为P6设置与Xamarin Studio连通测试
  10. Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
  11. jsp相对路径和绝对路径小谈
  12. Python BeautifulSoup4 使用指南
  13. fck编辑器的使用
  14. mysql插入测试数据
  15. PHP 完整表单实例
  16. MO_GLOBAL - EBS R12 中 Multi Org 设计的深入研究(1)
  17. BigDecimal常用的加减乘除算法、比较大小、保存两位小数点
  18. org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manu
  19. Hi3516EV100烧录出厂固件
  20. myeclipse项目导入到eclipse, HttpServletRequest报红现象

热门文章

  1. 从数据库中取数据(Stalberg.TMS.Data)
  2. Cosmetic Bottles - Cosmetic Packaging: What Are The Characteristics Of Trends?
  3. 手机远控SpyNote教程+软件
  4. 大盘及策略收益率的公式推导与Python代码
  5. spring aop @after和@before之类的注解,怎么指定多个切点
  6. SpringMVC 入门demo
  7. Lesson 14 The Butterfly Effect
  8. selenium webdriver 定位元素 第一部分
  9. django annotate()的使用
  10. 含有namespace的类型如何访问