我目前接触的反编译的方法总共有三种,分别如下:
1. 第一种反编译的方法主要是利用模拟器自带的一个dexdump。
具体如下面的介绍:
反编译一个.apk文件,需要做以下几步:1) 找到.apk安装文件 2)找到安装软件的*.dex文件 3)dump dex文件 4)分析dex文件获取想要的代码
一、找到apk安装文件这个比较容易,把手机或者模似器安装好后,可以在eclipse的File Explorer下找到安装程序的apk译文件,也可以通过adb命令找到:
$ adb shell
# cd /system/app
cd /system/app
# ls
二、找到安装软件的*.dex文件运行安装软件后,会在android文件系统下生成一个*.dex文件,一般在目录/data/dalvik-cache下,也可以通过adb命令找到:
$ adb shell
# cd /data/dalvik-cache
cd /data/dalvik-cache
# ls
(注意:一般来说,如果你能够通过File Exploere找到data/dalvik-cache文件,其实一二两个步骤可以跳过,直接进入adb shell后执行第三步;命令行中直 接输入adb shell后执行的前提是你已经在系统的环境变量中配置了tools文件,否则你得先cd到tools文件中执行adb.exe后才能执行以后的命令。另外你得确 保自己的虚拟机中安装了应用程序才能进行下一步的操作。对于系统自带的程序,我也试了进行反编译,结果输出的txt没有具体内容,没有成功。有兴趣的 话,大家可以试一下。)
三、编译软件对应的dex文件,通过以下指令:
#dexdump -d -f -h /data/dalvik-cache/data@app@com.ophone.chapter6_4-1.apk@classes.dex > ophone.text
指令参数解释:-d : disassemble code sections
-f : display summary information from file header
-h : display file header details
-C : decode (demangle) low-level symbol names
-S : compute sizes only
这执行完了后,大家应该可以在dalcik-cache文件夹下找到ophone.txt文件。如果没有的话,可以重新启动虚拟器。 之后我们可以将该txt文件导出到桌面上进行相关操作。(File Explorer中的按钮)
四、 获取需要的代码:打开刚才得到的编译出来的text文件,会看到形如以下的代码:
总体来看,这种反编译的效果不太理想。
第二种是:通过dex2jar工具进行反编译。(dex2jar:http://code.google.com/p/dex2jar/downloads/list 查看Jar包的GUI工具:http://java.decompiler.free.fr/?q=jdgui)
反编译步骤:
1、下载一个.apk程序安装包,将其文件名*.apk改为*.rar后进行解压。我这儿是将南方周末的读报器进行反编译的。
2、 把其中的class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat class.dex,将会在其文件夹下生成classes.dex.dex2jar.jar。
3、可以将jar文件重新命名后拷贝到GUI文件夹下,运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码。
与第一种方法相比较,该方法生成的文件全面,代码整齐,虽然有些中文会出现乱码,id等全部是数字代替,但整体结构很完整,不错。
类似的工具还有Dedexer(http://sourceforge.net/projects/dedexer/files/)
具体的应用代码为(先进入jar包所在路径):
java -jar ddx.jar -d <directory> <dex file>
可以再其中加入-o,这样可以生成一个介绍文件内部结构的日志文件。
第三种:网上还流传着这样一种用smali工具的方法(http://code.google.com/p/smali/downloads/list):
反编译命令 java -jar baksmali-1.2.jar <dex文件> -o <新生成的文件名>
重新编译 java -jar smali-1.2.jar <需编译文件夹>
本人亲自实践了一下,确实新版本的baksmali可以直接对.apk文件进行直接的反编译。
但是这种方法生成的文件也不是很好。
说到这儿,对于xml的文件的编译,需要工具AXMLPrinter2.jar(http://code.google.com/p/android4me/downloads/list)。具体的使用方法,与上面的差不多,可以运用命令 java -jar AXMLPrinter2.jar main.xml > main.txt 进行相关的操作。大家可以参照这位仁兄的(http://hi.baidu.com/linrw/blog/item/cc3afd2233ab88a94723e878.html)
相关推荐
标题中的“Android反编译工具包(最完整的Android反编译工具包)”表明这是一个集合了多种工具的资源包,用于帮助开发者和安全研究人员进行APK的反编译工作。 首先,让我们来了解一下反编译的基本概念。反编译是将已...
这通常涉及到使用各种Android反编译工具。这些工具可以帮助开发者、安全研究人员或者逆向工程师理解已编译的Android应用程序的工作原理。下面我们将详细探讨一些常用的Android反编译工具及其应用。 1. **Apktool**...
本文将详细介绍两款常用的Android反编译工具——dex2jar和apk2java,以及如何利用它们获取APK中的Java源代码和资源文件。 一、dex2jar dex2jar是一款将Dalvik字节码(.dex)转换为Java字节码(.jar)的工具。...
"Android反编译-全部工具包"提供了一个便捷的方式,将所有必要的反编译工具集合在一起,使得开发者无需分别下载和配置各个工具。下面,我们将详细介绍这个工具包中包含的组件及其用途。 1. **Apktool**:Apktool是...
最新的android反编译工具以及相关的使用方法,这个版本为最新的工具。 1、把apk文件重命名为zip或者rar文件格式 2、解压后把classes.dex复制到dex2jar-2.0目录中 3、打开cmd,定位到dex2jar-2.0目录 4、运行d2j-dex2...
这就是Android反编译的作用。本文将详细介绍一款名为"Android反编译可视化操作工具"的实用软件,它使得这个过程变得更加直观和便捷。 这款工具的核心优势在于它的可视化界面,开发者无需再通过复杂的命令行操作来...
在Android应用开发中,"android反编译资源获取"是一个重要的技术话题,它涉及到对APK文件的逆向工程,以便获取其中的资源文件,如图片、布局文件等。APKTool是这个过程中常用的一款工具,它允许开发者解包、反编译、...
这就是Android反编译工具包的作用。本文将深入探讨Android反编译的相关知识,包括为什么要反编译,常用的工具,以及如何使用这些工具。 一、为什么进行Android反编译 1. 安全分析:开发者或安全研究人员可以通过反...
`apktool`是一个开源的Android反编译工具,它能够帮助我们解包APK,反编译其中的XML和布局文件(layout),并提供重新打包和签名的功能,以实现对APK的分析和修改。 首先,`apktool`的基本使用流程如下: 1. **...
本文将深入探讨Android反编译的相关知识,包括为什么要进行反编译,常用工具介绍,以及反编译过程的详细步骤。 首先,让我们理解什么是Android反编译。Android应用通常是以APK(Android Package)的形式发布,它...
android反编译
"android反编译工具包"正是为这种需求而设计的专业工具集,它可以帮助开发者将二进制的字节码还原成可读的源代码,以及查看和分析应用程序的资源文件,如布局、图片和字符串等。 1. **反编译原理**:Android应用...
本文将深入探讨“android 反编译smali工具”,包括smali、smali-1.4.2.jar、baksmali-1.4.2.jar以及baksmali这四个工具,它们在Android反编译流程中的作用和使用方法。 首先,我们要知道,Android应用程序主要由...
这个“最新mac版本android反编译工具包”正是为这一目的而设计的,它包含了适用于MAC OS 10及更高版本的必备工具。以下是这些工具的详细介绍: 1. **Apktool**:Apktool是由IzzySoft开发的一个开源工具,主要用于反...
在实际操作中,使用“Android反编译工具.exe”这样的程序时,只需将APK文件拖放到程序界面上,它就会自动完成解压和解析工作,使开发者能便捷地查看和分析APK的内部结构。这在调试、逆向工程、安全审计等方面都有其...
本篇将详细介绍三个常用的Android反编译工具:Apktool、dex2jar以及JD-GUI。 1. **Apktool**: Apktool是一款强大的Android应用反编译工具,由Ivo Labs公司开发。它能够解码Android应用的资源文件,包括XML布局、...
总之,Android反编译jar包是一个涉及多种工具和技术的过程,需要对逆向工程有一定的了解。正确使用这些工具可以帮助开发者解决特定问题,但同时也需要遵循法律和道德规范,尊重软件开发者的劳动成果。
首先,Android反编译工具.exe和Android反编译工具(64位).exe是两个可执行文件,可能是用于在Windows操作系统上运行的反编译软件。这些工具通常能够解析APK文件,将其Java字节码(Dalvik Executable, .dex)转换回源...