APK文件反编译

上次看了两篇反编译APK文件的文章,反编译了几个音乐播放器,自己借用其中一个应用的界面做了一个相应播放器。近期有比较多的空闲时间,所以打算做一个LBS旅行应用。但目前发现又不会反编译了,所以还是记录下来,下次再忘直接看自己的文章比较快。(注:以下为Windows环境下)

1:反编译Java源码(从dex文件->jar文件->java文件)

利用工具(1)dex2jar,下载地址:http://code.google.com/p/dex2jar/(不知道能不能连上) (2)jd-gui,下载地址:http://jd.benow.ca/

解压后启动命令行(开始->cmd),更改目录到解压路径,如我的目录:D:\adt\apk2java\dex2jar-0.0.9.15

运行命令

(1) d:

(2) cd D:\adt\apk2java\dex2jar-0.0.9.15

(3) 解压要反编的APK文件,得到classes.dex文件,如我要反编译去哪儿旅游攻略,classes.dex文件路径为:D:\android_relate\travelLBS\com.qunar.travelplan_222048\classes.dex

(4) d2j-dex2jar -o D:\android_relate\travelLBS\com.qunar.travelplan_222048\qne.jar D:\android_relate\travelLBS\com.qunar.travelplan_222048\classes.dex

注:dex2jar命令已经废弃,官方推荐用d2j-dex2jar命令,上面的命令d2j-dex2jar -o [反编译后的文件保存位置及名字]  [要反编译的dex文件];如果不加-o参数即指反编译到d2j-dex2jar命令所在路径中,这里还有其他的参数,具体可以自己去看d2j-dex2jar -help

(5) 得到qne.jar文件后用jd-gui打开就行了,这个就不解释了,去用就懂

2:反编译资源文件

工具:apktoole,下载地址:http://code.google.com/p/android-apktool/ (假设我的apktool文件路径为:D:\adt\fby\prk-window)

运行命令

(1) d:

(2) cd D:\adt\fby\prk-window

(3) apktool d -s D:\android_relate\travelLBS\com.qunar.travelplan_222048.apk D:\android_relate\travelLBS\qne

注:-s是指src目录就不要反编译出来了,反编译的话得到的是.smali文件(对我反正暂时没什么用)。命令apktool d -s [apk文件路径] [生成的资源目录路径]。具体参数可以自己了解一下apktool -help

至此Java文件和资源文件都得到了。反编出来的java文件可能添加了混淆,类名为a,b,c这样,暂时没办法还原

截个图看一下吧:

命令行:

得到的文件(1个jar文件,1个资源目录):

APK文件反编译

时间: 2024-07-30 10:13:08

APK文件反编译的相关文章

关于APK文件反编译方法(图文详解)

今天晚上利用个把小时,终于把apk反编译彻底弄明白了,现在详细讲解一下apk反编译的具体过程. 1.下载三个工具 APK Multi-Tool    作用:获取apk的配置资源文件 dex2jar-0.0.9.15  作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui 作用:打开上面生成的jar文件(把.apk文件改成.zip或者.rar文件后,用压缩文件打开只能看到大量的.java文件,此时就可以利用此工具打开,就可以看到源代码已经所用到的库文件) [三

[转]结合HierarchyViewer和APK文件反编译获得APP元素id值

背景: 最近在使用Robotium进行Android自动化测试.遇到了一个问题:我需要获得一个View的id(int型数值).此前我在http://maider.blog.sohu.com/255448342.html和http://maider.blog.sohu.com/255485243.html两篇文章中讲述了如何打开手机上的View Server来使用HierarchyViewer.HierarchyViewer对查看UI组件固然有帮助,但要想获取一个元素的id还是不行的.请看下图:

【Android】apk文件反编译

工具: 压缩软件:用于解压apk包 dex2jar:*.dex反编译为Jar包 jd-gui:查看Jar文件 (PS:不知道博客园如何上传附件,只能把工具挂到百度网盘了:http://pan.baidu.com/s/1jIwb3MY) 0x01:用压缩软件解压apk 0x02:dex2jar把*.dex编译jar包 (1)把需要反编译的*.dex文件拷贝到dex2jar根目录 (2)通过命令行cd进入dex2jar根目录 (3)执行命令 d2j-dex2jar.bat *.dex 编译成功后会发

android apk 文件反编译

最近,自己坑逼的把一个android 项目修改版本的代码删除了.这个项目居然还没上传到源代码管理器.幸好还有apk文件,修改的代码也不多可以反编译一下. 1.下载 dex2jar  获取源码工具  地址:https://sourceforge.net/projects/dex2jar/   下载 jd-gui     查看源码工具     地址:http://jd.benow.ca/ 2.解压 dex2jar  . 3.修改 apk 文件后缀为 .rar 或 .zip ,然后解压文件,找到解压文

APK防反编译技术

APK防反编译技术 下载地址:地址 我们的APK实际上就是一个ZIP压缩文件,里面包含有一个classes.dex,我们编译后生成的程序代码就全部在那里了,通过apktool等工具可以轻松地将它们反编译成smali代码.有了这些反编译出来的smali代码之后,我们就可以轻松地了解别人的APK使用的一些技术或者直接修改别人的APK.由于这些APK反编译工具的存在,我们迫切地希望能有方法去防止别人来反编译我们的APK,从而保护自己的商业机密和利益. 下载地址:地址 版权声明:本文为博主原创文章,未经

android apk 防止反编译技术第一篇-加壳技术

做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步.这篇主要讲apk的加壳技术,废话不多说了直接进入正题. 一.加壳技术原理 所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想

android apk 防止反编译技术第二篇-运行时修改字节码

上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码.这种方法是在工作中在实现app wrapping时,看到国外的一篇关于android 安全的介绍实现的并且独创.下面我们来介绍一下这种方法. 我们知道apk生成后所有的java生成的class文件都被dx命令整合成了一个classes.dex文件,当apk运行时d

Android Apk的反编译和加密

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

android apk 防止反编译技术第四篇-对抗JD-GUI

又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊.好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法.前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372).运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203)和伪加密(http://my.oschina.net/u/2323218/blog/399326),如果有不明白的可以查看我的博客的前三篇中关于这