android apk代码和xml资源文件反编译

一、反编译Apk得到Java源代码

首先要下载两个工具:dex2jar和JD-GUI

前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

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

具体步骤:

首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;

解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录

运行

dex2jar.bat    classes.dex

生成

classes.dex.dex2jar.jar

用JD-GUI打开classes.dex.dex2jar.jar就能看到java代码了。

二、反编译apk资源文件

首先还是下载工具,这次用到的是apktool

下载地址:http://code.google.com/p/android-apktool/downloads/list

下载:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)

具体步骤:

将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar

命令行解释:apktool   d   [apk文件 ]   [输出文件夹]

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

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

 
        很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:

打包apk后的文件在目录C:\XXX下,生成了两个文件夹:

build

dist

其中,打包生成的XXX.apk,在上面的dist文件夹下,Ok

时间: 2024-11-10 00:57:47

android apk代码和xml资源文件反编译的相关文章

android能不能在string资源文件的中引用string资源

问题描述 android能不能在string资源文件的中引用string资源 例如有这样两个string资源 能不能在第二个资源中直接引用第一个资源啊,求大神赐教? 也就是像这样,当然,这个是错误的,有没有正确的方法可以这样引用的. 解决方案 资源文件当然引用资源文件,但是你的资源文件名不能是全角

服务器-class文件反编译为Java

问题描述 class文件反编译为Java SQL server 2008+myclipse+tomcat开发OA系统时,如何把tomcat服务器下的项目还原在myclipse中编译. 解决方案 Java Decompiler 这个东东就比较好用http://www.bkill.com/download/20100.html 解决方案二: 1.建一个自己的工程 2.反编译classess下的文件(工具很多,后期要做很多修复工作),作为自己的源码 3.拷贝相应的lib 4.jsp,js等资源考到we

android ndk 引入已有的.so文件,编译时消失,求大牛

问题描述 android ndk 引入已有的.so文件,编译时消失,求大牛 我有个android ndk工程,引入了已有的.so文件(copy 到libsarmeabi文件下).编译的时候,就只生成了自有的.so文件,copy的已有的.so文件都消失.我怎样才能引入第三方.so文件呢,求大牛 解决方案 你先生成自有的,再拷入已有的 解决方案二: 是不你的Android.mk文件没写正确 解决方案三: 若是使用cdt builder那再正常不过了,cdt builder先将lib/armeabi清

.dll 文件反编译的工具软件集合_自学过程

.dll 文件反编译的工具软件:    Reflector for .NET Remotesoft .NET Explorer Remotesoft .NET Explorer 支持asp.net2.0 要真正反编译.dll文件就在网站上使用该软件去操作,可以完成反编译出源码,因为是共享软件,所以在下载来的,不能完成反编译出源码,要看源码的最好是在网站编译,下面有链接链接:http://www.remotesoft.com/salamander/http://www.remotesoft.com

Android清除工程中无用资源文件的两种方法_Android

一.调用Android lint命令查找出没有用到的资源,并生成一个清单列表: 命令:lint –check "UnusedResources" [project_path] > result.txt 执行完之后会生成一个清单文件,内容如下: 二.使用代码自动删除无用的文件: public class DelAction { public static void main(String[] args) throws IOException { String projectPath

Android清除工程中无用资源文件的两种方法

一.调用Android lint命令查找出没有用到的资源,并生成一个清单列表: 命令:lint –check "UnusedResources" [project_path] > result.txt 执行完之后会生成一个清单文件,内容如下: 二.使用代码自动删除无用的文件: public class DelAction { public static void main(String[] args) throws IOException { String projectPath

请教一个关于.NET exe文件反编译的问题

问题描述 请教一下,对于C#写出来的dll和exe如何防止反编译?(除了混淆和加密)我现在遇到一个情况,项目是用C#做的:1.里面的dll文件也可以反编译,但是里面的代码只有尤其是方法,只有方法的声明和一对花括号,方法体是空的.2.exe程序直接无法反编译,用ILSpy等都是,提示:Thisfiledoesnotcontainamanagedassembly.求指点,谢谢 解决方案 解决方案二:那你凭什么说这是c#项目解决方案三:问如何防止反编译结果又问自己反编译遇到的问题我也是醉了解决方案四:

使用vb.net有可能通过exe文件反编译出程序原码吗

问题描述 已有exe文件,但没有原码,能够实现使用vb.net反编译出程序原码吗? 解决方案 解决方案二:如果只是想使用里面的方法,可以试试反射,不过效率不高.解决方案三:所以说还不如写个程序方便了?解决方案四:帮不上了,帮顶吧--解决方案五:好象很难吧解决方案六:个人觉得应该不可以吧java好像才可以解决方案七:引用5楼semp010的回复: 个人觉得应该不可以吧java好像才可以 解决方案八:reflector,不过不是很准确,有的地方需要修改一下才可以解决方案九:引用7楼vwxyzh的回复

黑莓ECLIPSE3.5开发环境不识别资源文件导致编译不通过解决方案附文件(系统语言问题)

 在为应用程序加入本地化支持时会遇到Can't open dir C:/test/LocalizationDemo/bin/com.rim.samples.device.localizationdemo.LocalizationDemo?ê.crb/ 的错误,这主要是eclipse的bug.一般人解决思路都是装一个全英的系统,但是如果你的系统已经是中文了,解决方法如下: 解决方法很简单: 下载 net.rim.ejde.componentpack6.0.0_6.0.0.29,取/componen