Android 反编译apk
工具介绍:
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads
dex2jar
作用:将apk反编译成java源码(classes.dex转化成jar文件)
下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui
作用:查看APK中classes.dex转化成出的jar文件,即源码文件
下载地址:http://jd.benow.ca/
下载完成后如图:
如果上面的文件没有下载成功就自己在其他地方下载,网上搜索下还是很多的,只是注意下比较新的版本就好了哈(版本太旧会导致反编译失败),这里可以将这三个一起下载----> CSDN下载(PS:没有积分的可以直接问我要文件,我也不知道为什么一传上去就默认要5分了)
将【dex2jar-2.0.zip】和【jd-gui-windows-1.4.0.zip】分别解压到当前文件夹,接下来开始使用
1、使用apktool反编译apk得到资源文件
使用cmd将目录切换到当前文件夹的目录下,然后输入
java -jar 【apktool的jar包名称】 d -f 【要反编译的apk路径】 -o 【反编译后保存的文件名】
需要注意如果出现”Input file was not found or was not readable"的问题,
是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>
然后目录下生成了对应文件夹,打开里面就是apk的资源文件
2、使用dex2jar反编译apk得到Java源代码
将要反编译的APK后缀名改为.rar或者 .zip,然后解压,得到classes.dex文件(它就是java文件编译再通过dx工具打包而成的)
将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内:
在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:
在这里的执行过程中如果没报错,那么就表示已经反编译成功了
命令执行完成之后,在当前目录下就可以看到生成的Jar文件:
反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了
使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:
JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):
到这里就OK了,反编译成功。
需要注意的是
出现这个提示时说明你的jdk在1.8或以上,jd-gui只支持到1.7版本,你可以换成用Procyon-Decompiler或其他
Android 反编译apk的更多相关文章
- Android 反编译apk 详解
测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取) 下载 dex2jar(源码文件获取) 下载 jd-gui (源码查看) ...
- Android 反编译Apk提取XML文件
Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...
- [Android]反编译apk + eclipse中调试smali
从来没有想过反编译apk是来的如此方便,并且还可以修改后重新编译运行,这比在win下修改pe容易多了,感谢apktool和smali工具的作者提供这么好的工具. 跟踪apk一般的做法是在反编译的sma ...
- Android反编译apk并重新打包签名(Mac环境)
工具下载 apktool :https://ibotpeaches.github.io/Apktool/install dex2jar:https://github.com/pxb1988/dex2j ...
- Android反编译APK
http://blog.csdn.net/vipzjyno1/article/details/21039349/ 关于被加壳工具添加我的apk如何脱壳 http://www.blogfshare.co ...
- Atitit.反编译apk android源码以及防止反编译apk
Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...
- Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...
- Android反编译(未混淆的apk)
Android反编译(未混淆的apk) 工具 dex2jar 下载地址:我的CSDN 或者 官网 jd-gui 下载地址:我的CSDN 或者 官网 反编译步骤 1. 将APK解压缩,获取classes ...
- Android基础新手教程——1.10 反编译APK获代替码&资源
Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...
随机推荐
- Django——中间件设置缓存
如图所示查看网站缓存时间 在app中创建middleware.py文件,导入MiddlewareMixin,创建类并继承MiddlewareMixin 在settings中的MIDDLEWARE=[ ...
- 前端利器Emmet
前端利器Emmet Emmet可以通过缩写生成代码片段,可以提升前端开发的效率.使用方法就是输入HTML或者CSS的缩写,然后按tab键自动生成.原文在这里 后代 > <!-- nav&g ...
- 唐平中讲座笔记 Reinforcement mechanism design 20171107
渣排版预警,纯草稿... 唐平中.研究方向是经济学和ai方向,机制设计和拍卖设计. 内容:广告优化的方法论,自动优化. [内容] Basics on mechanism design and resr ...
- 匈牙利算法--java
先上例题 杭电acm 2063 :http://acm.hdu.edu.cn/showproblem.php?pid=2063 bool 寻找从k出发的对应项出的可增广路 { while (从邻接表中 ...
- 几个例子弄懂JS 的setTimeout的运行方式
function test() { var a = 1; setTimeout(function() { alert(a); a = 5 ...
- MUI学习04-开关按钮
HTML代码如下: <div class="mui-switch"> <div class="mui-switch-handle">&l ...
- jQuery 学习05——AJAX:定义、load()方法、get()/post()方法
AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). load() 方法:从服务器加载数据,并把返回的数据放入被选元素中. 语法:$ ...
- 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ...
- javaScript系列 [01]-javaScript函数基础
[01]-javaScript函数基础 1.1 函数的创建和结构 函数的定义:函数是JavaScript的基础模块单元,包含一组语句,用于代码复用.信息隐蔽和组合调用. 函数的创建:在javaScri ...
- 【jvm】windows下查看java进程下多线程的相关信息
微软工具:Process Explorer v15.3 下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx 参考教程: ...