APKTool

APKTOOL是解包 APK 文件最常用的工具,许多 APK 工具箱都集成了 apktool。它可以完整解包 APK,解包后你可以看到 APK 里面的声明文件、布局文件、图片资源文件、由 dex 解包出来的 smali 文件、语言文件等。如果你要汉化、修改界面、修改代码的话,apktool 可以帮你一站式完成。

常用命令

需要在 CMD 命令窗口中输入命令来使用,常用命令如下:

解包 APKJava -jar apktool.jar d *.apk -o out 
其中 *.apk 是被解包的 APK 文件名, out 是输出目录名称

重新打包java -jar apktool.jar b out 
out 就是上面的输出目录

导入 framework-res.apk 架构文件java -jar apktool.jar if frameword-res.apk 
需要将 framework-res.apk 文件放在 apktool.jar 的相同目录下,导入架构文件可以解决一些调用了系统框架资源的 APK 包解包失败的问题

操作过程

  1. 下载解压工具包 
  2. 将需要反编译的APK文件放到该目录下,打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f *.apk out或者用上边的命令也可以! 
  3. 将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了。

注意:有些APK在打包的时候做过混淆处理,反编译之后里边好多都是以abc之类的命名,但是里边的逻辑还是很清晰的,能给我们提供一个实现的思路。

Smali2Java

我在搜索类似的的这种反编译的工具时,发现了这个Smali2Java,它不用在命令行输入命令来进行,直接解压后打开Smali2JavaUI.exe运行,将要反编译的APK文件直接打开即可。 

apktool下载

apktool反解apk包的更多相关文章

  1. 利用apktool反编译apk

    下载apktool所需文件: a. apktool1.5.2.tar.bz2 b.apktool-install-windows-r05-ibot.tar.bz2  (windows系统) 步骤阅读 ...

  2. ApkTool反编译apk,去除广告或者汉化后重新打包apk,并签名

    http://my.oschina.net/mopidick/blog/135581 以ubuntu的环境为例子,window的大同小异 首先下载apktool工具:https://code.goog ...

  3. 【转】利用apktool反编译apk,并且重新签名打包

    网站:https://ibotpeaches.github.io/Apktool,下载安装好apktool. 我的安装在 C:\Users\Administrator\Downloads\apktoo ...

  4. Apktool反编译apk资源文件

    Android开发过程中,如何查看已经打包的APK内部xml呢,google下找到了apktool这个工具, apktool项目现在已经迁移到了github:apktool 目前最新版本2.2.2,如 ...

  5. apktool反编译apk文件

    1.首先下载apktool文件,可以从我的网盘下载:http://pan.baidu.com/s/1nvPdbVb 2.将你的apk文件和apktool文件放到一个文件夹下,这里就放到D:\study ...

  6. 使用apktool反编译apk文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  7. Android获取APK包名的几种方法

    Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt-- ...

  8. apktool逆向apk包

    在AndroidStudio创建so一节里创建了so,并且在java里面调用so的HelloWorld方法,编译Android Studio后生成包app-debug.apk. 在逆向apk时如果该a ...

  9. Uubuntu 14.04 LTS反编译apk

    使用apktool反编译apk 1.安装apktool apktool是Google提供的APK编译工具,能够反编译及回编译apk,需要Java环境的支持(在此不再赘述Java的安装与配置,详见< ...

随机推荐

  1. Oracle11g select查询时候输出未选定行

    解决方法是: 查询的表名是否是大写的: 是否没有提交执行结果:可以commit一下:

  2. Lucas-Kanade算法总结

    Lucas-Kanade算法广泛用于图像对齐.光流法.目标追踪.图像拼接和人脸检测等课题中. 一.核心思想 给定一个模板和一个输入,以及一个或多个变换,求一个参数最佳的变换,使得下式最小化 在求最优解 ...

  3. 条理清晰的搭建SSH环境之整合Hibernate和Spring

    上篇博客整合了Struts和Spring,感觉很简单,这篇博客主要讲述Hibernate和Spring的整合. 如果说上篇博客中的整合是以为Spring的IOC可以管理对象,让Struts2里的对象管 ...

  4. .NET 获取Get方式URL中的参数键值

    在Web开发中,我们常常会涉及到需要获取Get方式URL中的参数键值的情况,这里简单介绍三种方法: 第一种:常用的做法有使用JavaScript获取location.href后用正则表达式匹配获取此U ...

  5. adb错误:Failed to execute android command 'adb devices'.

    好吧,我是用的phonegap3.0开发的,很简单,安装的时候一句phonegap run android –device就可以了(-device参数非必要,我是为了不跑模拟器,加上此参数限制只跑到设 ...

  6. 常用的网络上的Webservice接口

    商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSe ...

  7. PMP用语集

    AC actual cost 实际成本 ACWP actual cost of work performed 已完工作实际成本 BAC budget at completion 完工预算 BCWP b ...

  8. Go之单元测试

    go单元测试需要按照gotest的规范来编写: 1.文件名必须以xx_test.go命名 2.方法必须是Test[^a-z]开头 3.方法参数必须 t *testing.T   在运行gotest的时 ...

  9. 一张图了解SSH端口转发

    ssh和端口转发什么的,我就不想废话了,主要是ssh的命令格式真心不太好理解.网上也搜过相关文章,参差不齐.其实自己也理解怎么用,但我自己也表达不好.这几日无意碰到篇好文章,有图有真相,清楚的很,还有 ...

  10. Oracle基本操作,Oracle修改列名,Oracle修改字段类型

    oracle基本操作,Oracle修改列名,Oracle修改字段类型 >>>>>>>>>>>>>>>>& ...