`

android 的反编译与防反编译

 
阅读更多

1 apk反编译

  有时候,写不出来一个好的应用,或者没有思路,那么可以借鉴其他的apk,那么就有了反编译。

  A 得到Java源代码

  工具下载:需用到dex2jar和JD-GUI这2个工具

dex2jar下载地址:

       http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
  windows版JD-GUI:

       http://laichao.googlecode.com/files/jdgui.zip
  Linux版JD-GUI:

       http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz

步骤:

1.首先找到Android软件安装包中的classes.dex
       把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

 

2.把classes.dex拷贝到dex2jar.bat所在目录。
       在命令行模式下定位到dex2jar.bat所在目录,运行

       dex2jar.bat classes.dex  ,生成classes.dex.dex2jar.jar

 

3.运行JD-GUI工具(它是绿色无须安装的)
 打开上面的jar文件,即可看到源代码

  B 生成程序的源代码和图片、XML配置、语言资源等文件。

   工具下载:

http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

步骤:

1.解压缩下载的两个文件包,apktool-install-windows-2.1_r01-1.zip解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar 文件copy进来)

2.打开命令窗口 (开始 > 运行,输入cmd,回车。)进入到apktool.bat的文件夹里。

          输入:

                    apktool d C:\***.apk  C:\***文件夹

(命令行解释:apktool d 要反编译的文件 输出文件夹)

特别注意:你要反编译的文件一定要放在C盘的根目录里,

3.打开 C:\***文件夹 就可以得到我们学院的各种资源了。

 

三.将反编译完的文件重新打包成apk

 很简单,只要输入:

     apktood b c:***文件夹(你编译出来文件夹)

 

2 防止反编译

   有时候,写的应用不想被别人那么容易破解,那么就只能对它进行包装了。

   在android-sdk-windows/tools/一个proguard文件夹,proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。
   让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了,完整的default.properties文件应该如下:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-9
proguard.config=proguard.cfg
  综合:经过防止反编译的加工,反编译后的文件只是部分能用的,有些很难看懂了。呵呵

 转载地址:http://www.cnblogs.com/playing/archive/2010/08/11/1797696.html 谢谢原作者

分享到:
评论

相关推荐

    Android菜鸟日记25-android反编译

    这篇“Android菜鸟日记25-android反编译”将带你走进Android反编译的世界,揭示APK背后的秘密。 首先,让我们了解什么是Android反编译。Android应用主要由Java语言编写,经过编译后生成Dalvik字节码(.dex文件),...

    Android反编译工具包 图形界面 apk 一键反编译

    本知识分享将围绕"Android反编译工具包 图形界面 apk 一键反编译"这一主题展开,介绍如何利用特定工具进行APK的反编译,以及这些工具的工作原理和注意事项。 标题中的"Android反编译工具包"是指一系列专门用于解析...

    Android反编译示例包

    "Android反编译示例包"是一个针对这一主题的资源集合,包含了多个APK文件和一个反编译工具,旨在展示如何在不干扰原有应用的基础上新增功能。 首先,让我们详细讨论一下“完全新增”这个概念。在Android开发中,...

    android反编译工具集合

    "android反编译工具集合"就是一个这样的资源包,包含了可以帮助开发者进行APK逆向工程的实用工具。其中提及的“dex2jar-0.0.7.9-SNAPSHOT”是一个关键的子文件,用于将Dalvik Executable (DEX) 文件转换为Java字节码...

    android app 反编译步骤

    * 在反编译 APK 的过程中,可能会遇到一些防反编译的措施,例如一些 app 会进行防反编译的保护,但这并不影响我们获取源代码和资源文件。 Android APP 反编译是一种复杂的过程,需要使用多种工具和技术来获取源代码...

    Android 反编译工具包(含 前人教学)

    "Android反编译工具包"正为此目的提供了必要的资源和教程。以下是对这个主题的详细阐述: 一、反编译的必要性 反编译Android APK的主要原因有: 1. 学习与研究:通过查看他人的代码,学习新的编程技巧和设计模式。...

    Android 反编译工具

    在IT行业中,Android应用开发是一项重要的技能,而“Android反编译工具”是开发者和逆向工程师们常用的一种技术手段。这些工具可以帮助我们查看、分析甚至是修改APK文件中的源代码,这对于调试、安全评估、学习他人...

    android反编译.zip

    "android反编译.zip"这个压缩包提供了实现这一目标所需的工具和步骤。下面,我们将深入探讨这些知识点。 首先,APK文件是Android应用的打包格式,包含了 Dex(Dalvik Executable)文件,这是Java字节码的优化形式,...

    Android防反编译工具

    首先,我们需要理解什么是Android反编译。反编译是指将已编译的二进制代码转换回接近原始源代码的过程。对于Android应用,常用的反编译工具有如JD-GUI、dex2jar、Apktool等,它们能够解析.dex文件并展示Java源代码,...

    android反编译工具

    Android反编译是Android开发中的一个重要领域,它主要涉及到对APK文件的逆向工程,以便查看、修改或分析其内部代码和资源。这在软件安全测试、漏洞挖掘、学习他人代码逻辑或优化已有应用等方面都有广泛应用。下面将...

    android 反编译套装,android killer 防卡死,最新的工具

    首先,让我们深入了解一下Android反编译。反编译是将已编译的二进制代码转换回源代码的过程。在Android中,APK文件包含了Dex(Dalvik Executable)文件,它是Java字节码的特殊形式,运行在Dalvik或ART虚拟机上。为了...

    Android 反编译工具下载

    这个“Android反编译工具下载”资料包正为此目的提供帮助,特别适合刚接触Android开发的新手。下面我们将深入探讨Android反编译的相关知识。 首先,了解为什么要进行Android反编译。当原始源代码丢失或不可用时,反...

    代码混淆—关于android被反编译的两种解决方案

    dex2jar是一款常用的Android反编译工具,它能够将DEX(Dalvik Executable)文件转换为JAR文件,然后使用JD-GUI或者JD-Core等Java反编译器将JAR文件反编译回Java源码。为了防御这种情况,开发者可以采用以下方法: 1...

    Android反编译工具

    在Android应用开发的世界里,有时候我们可能需要对已有的APK文件进行逆向工程,以了解其工作原理...理解这个过程可以帮助开发者更好地学习他人的实现、进行安全审计,同时也提醒我们在编写代码时应考虑防反编译的策略。

Global site tag (gtag.js) - Google Analytics