反编译 android apk 文件看看java源代码

1,关于apk



想要做android开发,要做的一个事情就是学习别人的代码。
先研究下别人的代码,看看咋写的有啥漏洞。学开源的项目也行。
开源项目不如真实的项目有代表性。同时开能看看别人的服务器接口是咋设计的。
比如你弄到一个apk文件。
apk首先是一个压缩文件,只要解压缩就好了。

2,解开xxx.apk



假设在服务器上面直接解压缩就行了。

unzip /data/app/xxx.apk -d /data/app/xxx

里面会有几个文件
AndroidManifest.xml classes.dex resources.arsc META-INF res
其中classes.dex 就是相当于jar的文件了

3,解开dex文件



需要用到一个工具,反编译dex 工具
gitlab项目:
https://github.com/pxb1988/dex2jar
https://sourceforge.net/projects/dex2jar/?source=typ_redirect
工具可以在windows 和 linux 上面使用,也是java写的。
比如在linux上面:

sh ./dex2jar-2.0/d2j-dex2jar.sh /data/app/classes.dex -o /data/app/classes-dex2jar.jar

然后就转换成jar文件了。

4,使用jad反编译



jad是命令行的:
http://varaneckas.com/jad/

unzip /data/app/classes-dex2jar.jar -d /data/app/classes

-o参数,设置输出文件目录和名称:

jad -r -ff -d src -s java classes/**/*.class 

然后src里面就是源代码了。

5,最简单的方法



使用jd-gui直接打开
http://jd.benow.ca/
要什么自行车啊,直接就可以打开这个jar文件。
下载执行文件,直接执行就行。

灰常简单。

4,写完才知道还有一步到位的工具



https://github.com/skylot/jadx
直接有人写好了的工具,一步到位,直接分析apk文件的。

省了不少事情。超级赞。

5,总结



android反编译起来还是非常容易的,尤其是java还有反编译工具。
看起来就更容易了,jd-gui还是非常的好用的。gui的界面使用起来也是很方便的。
但是如果app做了混淆了,并且,app做了加壳把重要的代码,算法都放到了so文件里面
这个使用需要使用其他办法解决了。
一般要是研究些小应用的app他们是啥也没有做的,学习起来还是非常方便的。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53025024 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

时间: 2024-11-05 05:49:10

反编译 android apk 文件看看java源代码的相关文章

asp.net反编译的cs文件快速生成aspx.cs

问题描述 asp.net反编译的cs文件快速生成aspx.cs 各位大神,木有啥工具能直接把反编译出的代码还原成源代码那种包含有aspx. designer.cs 还有aspx.cs文件那样的工具么? 反编译的dll只有cs文件 改起来工程量好大 解决方案 designer.cs aspx.cs文件 不可能区分开,因为编译的时候丢失了源代码属于哪个文件的信息. 但是aspx文件和.cs文件可以对应起来,在aspx里面找开头的codebehind,里面指向类. 解决方案二: asp.net 中 .

Android APK文件在电脑(PC虚拟机)上面运行方法_Android

APK是Android系统的发布的工程包,很多时候我们想在电脑上而非Android手机上面运行它.下面就提供下Android APK文件在电脑上面运行方法. 首先要配置android环境变量,如果配置好了,安装就会很方便了. 可以在系统变量的path下追加,也可以在用户变量的path下追加,区别应该都知道的. 追加时不要忘了先用英文分号";"分隔前后环境变量值.添加android环境变量的值时要注意,adb.exe已经从tools目录转移到platform-tools目录了,具体可以看

Android APK文件在电脑(PC虚拟机)上面运行方法

APK是Android系统的发布的工程包,很多时候我们想在电脑上而非Android手机上面运行它.下面就提供下Android APK文件在电脑上面运行方法. 首先要配置android环境变量,如果配置好了,安装就会很方便了. 可以在系统变量的path下追加,也可以在用户变量的path下追加,区别应该都知道的. 追加时不要忘了先用英文分号";"分隔前后环境变量值.添加android环境变量的值时要注意,adb.exe已经从tools目录转移到platform-tools目录了,具体可以看

Android APK文件解析

Android的.apk文件实际上就是一个zip文件 可以直接用winrar打开 如下图所示: 包括了一个META-INF目录 一个res目录 一个AndroidManifest.xml 一个classes.dex     AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字.版本.权限.引用的库文件等等信息,如要把apk上传到Google Market上,也要对这个xml做一些配置. META-INF目录 META-INF目录下存放的是签名信息,用来保证apk

反编译Android App问题攻克

在这里讲述的其实是java反编译,主要是因为我是反编译人家的app源码入手的,就自然的挂起了羊头. 众所周知,通过dex2jar能将android app的dex解析为class文件jar包,然后通过jd等反编译工具查看源代码,貌似很容易就能对别人的劳动成果拿来主义,可果真如此理想么? 本着实事求是的原则,自己亲手试了下,结果自然是杯具的. 以下是反编译出的结果,我们简单的以一个方法为例: public double getCORRLN(double[] paramArrayOfDouble)

反编译-android proguard混淆时,不出错,但是网络请求加载的数据不出来,我用的是volley

问题描述 android proguard混淆时,不出错,但是网络请求加载的数据不出来,我用的是volley 我反编译代码看是请求的方法被拆分成了好几个类,可能是这个问题么?但是不知道怎么解决,感激不尽 解决方案 网络请求的三方jar包不能混淆

恢复Reflector反编译后资源文件的办法

反编译问题: 1.路径问题:如果遇到了Path.Combine,有错误改下即可 2.资源文件问题: 在Reflector下,对左边的资源管理窗口的Resources文件夹下的资源文件,进行右键点击,选中"Save as" 选项保存即可. 例:对于项目文件夹里面的TryAssemb.Form1.resx,首先改为Form1.resx然后移动到TryAssemb目录里面 3.对窗体打开"视图设计器",发现会出现下面的错误: 修改方法就是对所有System.Windows

Android软件怎么反编译?Android反编译方法

工具下载地址:http://pan.baidu.com/s/1qYMiLp6   将你的apk添加到压缩文件,比如zmit.rar,然后解压,会出现下图的文件: 将classes.dex放到dex2jar-0.0.9.15文件夹下,在这个文件夹下,有一个dex2jar.bat文件,打开控制台,定位到dex2jar-0.0.9.15文件夹,假设此文件夹在桌面上:如下图: 输入dex2jar.bat   classes.dex 效果如下图: 这时候在此目录就会生成一个classes_dex2jar.

Android APK 文件自动安装

1.权限 <uses-permission android:name="android.permission.INSTALL_PACKAGES" />   2.方法 Uri uri = Uri.fromFile(new File("/sdcard/temp.apk")); //这里是APK路径 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri,"a