apk应用的反编译和源码的生成

对于反编译一直持有无所谓有或无的态度,经过昨天一下午的尝试,也有了点心得和体会:

先给大家看看编译的过程和我们反编译的过程概图吧:

如下是反编译工具的根目录结构:

三个文件夹也实际上是以下三个步骤的体现:

(不知道大家发现没,我把三个目录名字都改了一下,apktool即为处理apk的工具;dex2jar即就是将dex文件处理为jar包的工具;jar2gui即就是我们将jar包内的class转换为源码的gui界面以供大家参考的工具)

setp 1: 在apktool里:

打开dos框(cmd进入然后进入该目录下,这个应该都是妇孺皆知的事情了)执行  apktool d -s xxx.apk

这里会在该目录下生成一个以apk名为名字的文件夹,有classes.dex+res文件夹+AndroidManifest.xml 这三个东西,想必大家已经懂得了其中的内涵,没错,这就是我们的项目根目录,而dex即就是由jar打包而成的Android可执行文件。

/*

*命令里的apktool 其实也就是在执行目录下的apktool.bat批处理文件,而后边的xxx.apk也就是我们所需要反编译的apk包的名称。当然啦,经常使用dos命令的人都直到,文件名或者路径都可以使用其绝对路径予以代替,因此如果我们把我们需要反编译的包放到当前根目录下,即可以直接试用其名称来执行命令

*/

setp 2: 在dex2jar里

将1中生成的classes.dex(即就是Android下的可执行文件,由一簇一簇的.class文件jar包生成)拷入dex2jar下

执行 dex2jar classes.dex  --->生成jar包,即就是classses_dex2jar.jar

setp 3:在jar2gui下运行jd-gui选中2中的jar,即可查看源码(这里是真源码)。

既然上边提到“真源码”这个概念,相对应的必然就会有伪源码(纯属本人造词,如有雷同,你猜呢?哈哈,开玩笑的)

这里再上一图

上图左侧即就是我们用setp 3达到的效果,而右侧即就是我们通过jad工具反编译class文件出来的java源文件,通过对比很明显让人得出一个极为蛋疼的结论,反编译出来的东东简直目不忍视啊·······,当然啦,左侧的代码是可以直接拷贝出来的,但是如果你想要生成源码来编译的话,还请三思~~~毕竟我们反编译出来一个是要使用res资源,另一个是参考代码,如果想要破解原apk的话,相信还有办法反编译出更好的源码(用工具进行代码复制,这样虽然本质上并没有对class进行反编译,但却得到了相对准确的源码)

具体使用jad工具来反编译的话,我就不继续写了,具体教程写在工具包的README.text文本里了,还望大家下载:

Android反编译工具

jad工具

时间: 03-16

apk应用的反编译和源码的生成的相关文章

apk应用的反编译和源代码的生成

对于反编译一直持有无所谓有或无的态度.经过昨天一下午的尝试,也有了点心得和体会: 先给大家看看编译的过程和我们反编译的过程概图吧: 例如以下是反编译工具的根文件夹结构: 三个目录也实际上是下面三个步骤的体现: (不知道大家发现没,我把三个文件夹名字都改了一下,apktool即为处理apk的工具:dex2jar即就是将dex文件处理为jar包的工具.jar2gui即就是我们将jar包内的class转换为源代码的gui界面以供大家參考的工具) setp 1: 在apktool里: 打开dos框(cm

反编译Android APK及防止APK程序被反编译

原文出处 反编译Android APK及防止APK程序被反编译 怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它 的做法,同时啊,还可以借鉴别人的软件结构,资源文件:作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看.此方式主要目的是为了促进开发者学习,借鉴好的代

apk文件的反编译方法:

工作中有时我们需要进行apk文件的反编译工作,阅读优秀的代码和模式来帮助我们更好的完成我们的任务. 本篇介绍apk文件的反编译工作,两种反编译方式: 使用到的工具:apk逆向助手,aoktoolkit: 步骤: 1,新建桌面文件夹(不可包含中文,切记): 把我们用到的工具和apk文件拷贝进去: 2,打开我们的工具1和工具二,并将apk文件拖拽近框中,如图: 3,点击逆向助手中操作,或者apktoolkit中的反编译进行反编译apk,会在我们的文件夹下生成apk反编译后的文件夹,如图文件夹内容:

Android apk mac下反编译

需要工具: apktool  下载 dex2jar 下载 jd-gui  下载 apktool 反编译得到的是布局和资源文件. dex2jar 反编译得到的代码字节码,利用jd gui就可以查看到源代码. 1.apktool安装 1)下载apktool,及mac下apk-install-macosx 2)解压这两个文件,把这3个文件拷到path路径下.(注意需要root权限) 3)使用apktool d xxx.apk进行反编译,得到一个同名的文件夹.里面就有我们需要的布局文件. 2.dex2j

反编译源码

apk不会造假,Google签名的,如果想造假就得破解Google签名. 1. 首先直接解压一个apk,解压之后拷贝出里面classes.dex文件待用. 2. 下载dex2jar工具,解压之后打开cmd,进入解压目录,运行命令: d2j-dex2jar.bat classes.dex(上一步解压的) jarpath(反编译dex后的文件目录) example: d2j-dex2jar.bat c:\user\qting\classes.dex c:\user\qting\ 反编译之后,会得到一

Android如何防止apk程序被反编译

转自:http://blog.csdn.net/vipzjyno1/article/details/21042823 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让

实例详解:反编译Android APK,修改字节码后再回编译成APK

本文详细介绍了如何反编译一个未被混淆过的Android APK,修改smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk无论输入什么样的用户名和密码都可以成功进入到第二个Activity. 有时难免要反编译一个APK,修改其中的若干关键判断点,然后再回编译成一个全新的可用的apk,这完全是可实现的.若要完成上述工作,需要以下工具,杂家后面会把下载链接也附上.这些软件截止本文发布时,经过杂家确认都是最新的版本. 1.APK-Multi-Toolv1.0.11.zip 用它

Android Apk的反编译和加密

这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用.下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码. 一.Apk文件组成 Android的应用程序APK文件说到底也是一个压缩文件,那么可以通过解压缩得打里面的文件内容,不过很显然,当你去解压完去查看的时候,发现里面的很多东西和你想象中的不太一样.资源文件等xml文件基本打不开,即使打开了也都是乱码(而这正是Android进行加密过),有些应用会将图片资源等的也加密(如qq音乐). 而既然

Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

一.前言 在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工具是开源的,也是使用Java语言开发的,代码相对简单,我们今天就来分析一下他的大体逻辑,注意是大体逻辑哦,因为如果要一行一行代码分析,首先觉得没必要,其次浪费时间,有了源码,谁看不懂呢.至于为什么要分析这个工具其实原因只有一个,就是我们在之前的反编译过程中会发现,总是有那么几个apk应用不让我们那么容易的反编译,他们就利用apktool