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".看上去好像好像非常高端的样 ...
随机推荐
- 1171 Big Event in HDU 01背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:把商品分成两半,如不能均分,尽可能的让两个数相接近.输出结果:两个数字a,b且a>=b. ...
- windows安装channels报错的解决方案
windows作为开发机真是让人又爱又恨,总是会遇到各种各样的问题 报错 以安装channels为例:如: pip install channels 时出现: error: Microsoft V ...
- 卡在checking installable status
npm install卡在checking installable status 笔者在使用NPM过程中经常会用到npm install命令,发现有时候会卡在checking installable ...
- Marked Ancestor [AOJ2170] [并查集]
题意: 有一个树,有些节点染色,每次有两种操作,第一,统计该节点到离它最近的染色父亲结点的的号码(Q),第二,为某一个节点染色(M),求第一种操作和. 输入: 输入由多个数据集组成.每个数据集都有以下 ...
- 微信公众号开发之通过获取token等信息
<?php /** * 发送post请求 * @param string $url * @param string $param * @return bool|mixed */ function ...
- web.config中的ExtensionlessUrlHandler-Integrated-4.0
对于像MVC这种比较特殊的URL,例如 www.store.com/books/GetById/2 因为没有文件后缀名,IIS通常会无法解析,返回403或者404错误.ASP.NET v4.0增加了新 ...
- AnjularJS表单回车提交事件
问题: 输入手机号之后,再验证码输入框点击回车时,触发发送验证码事件. <div class="login-main"> <form name="log ...
- python标准库大全(转)
3. 清晰的标准库大全,带例子 2. 必会标准库 http://lizhenliang.blog.51cto.com/7876557/1872538 1. 标准库大全,链接版 http://blog. ...
- history.go(-1)和History.back()的区别
简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失:back(-1): 返回上一页,原页表表单中的内容会保留,一般还是back(-1)用的多
- Unity中InitializeOnLoad属性的妙用
InitializeOnLoad 属性应用的对象是 静态构造函数,它可以保证在编辑器启动的时候调用此函数.根据这个特性,可以在编辑器中设置定期的回调(帧更新),来实现类似watchFile的功能.这里 ...