0,工具汇总

我们反编译apk主要使用下面三个工具

  • apktool:用于获取资源文件
  • dex2jar:获取源文件jar包
  • JD-GUI:反编译源文件jar包查看源码
找这些工具时折腾了我点时间。如今把我找到的终于可用的版本号都放百度云了。到以下链接下载:

1,apktool获取资源文件


apktool事实上不止一个文件,当中包括aapt,apktool。apktool.jar三个文件,




终于我们调用的命令行都是apktool的,另外两个文件时其依赖的工具。将这三个文件复制到文件夹/usr/local/bin下,接下来就能够直接用命令行使用了apktool了。你能够这样检測检測效果



接下来就能够開始反编译你的apk获取资源文件了,先使用命令行切换到你的apk的文件夹下,然后运行命令
apktool d xxxx.apk
最開始运行上面的命令,我遇到例如以下图的一个问题,网上也有人遇到过



终于发现问题在于,apktool中三个文件的apktool.jar版本号太低,最后我下载了最新版替换过来。于是问题迎刃而解,终于执行效果例如以下



上面命令正常运行之后。你会发如今当前文件夹会生成一个喝apk同名的文件夹,当中就包括了反编译产生的资源文件。apktool使用到此为止。


2,dex2jar获取源文件jar包


首先将你的apk文件改为zip文件格式。然后解压出来,当中会有一个classes.dex文件。接下来我们就是从这个文件里获取源文件。

将classes.dex文件复制到你的dex2jar目录下,调用d2j-dex2jar.sh进行反编译,你能够能会遇到下面的问题


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ0haaXJveQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


在mac下遇到这个问题非经常见,用以下这个指令能够解决
sudo chmod 777 d2j-jar2dex.sh

d2j-jar2dex.sh可能还依赖于同文件夹中其它.sh文件,你可能须要为其它.sh文件运行上面的命令(我遇到当中的d2j_ivoke.sh也须要运行下面命令)。


搞定上面的问题之后,就能真正開始反编译获取原文件了。使用下面命令

./d2j-dex2jar.sh classes.dex

例如以下

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ0haaXJveQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


运行完命令后,当前文件夹会生成一个classes-dex2jar.jar文件,该jar包就是终于获得的源文件的jar包,我们就差最后一步。将jar包反编译获取java文件

3,JD-GUI获取java源文件

非常easy。你仅仅须要将上一步中生成的classes-dex2jar.jar在JD-GUI中打开就可以。一般我们能获取所有资源文件。如图片,布局文件。可是源文件时被混淆过的。


以上。




Mac环境下反编译apk的更多相关文章

  1. mac 环境下Android 反编译源码

    mac环境下Android 反编译 一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes. ...

  2. 【转】mac环境下Android 反编译

    一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes.dex文件转化为.jar文件. jd ...

  3. Mac 下反编译Android APK

    准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...

  4. cocos2dx 3.1.1移植安卓apk (lua项目交叉编译 mac环境下)

    cocos2dx 3.1.1 lua项目安卓交叉编译 mac环境下 本文基于ant,sdk,ndk,adt等软件和环境已经事前设置好 1\新建项目 在mac的终端下输入命令: cocos new te ...

  5. ubuntu下使用反编译apk,工具dex2jar和jd-gui

    ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...

  6. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

  7. Uubuntu 14.04 LTS反编译apk

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

  8. Android基础新手教程——1.10 反编译APK获代替码&amp;资源

    Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...

  9. [Android]反编译apk + eclipse中调试smali

    从来没有想过反编译apk是来的如此方便,并且还可以修改后重新编译运行,这比在win下修改pe容易多了,感谢apktool和smali工具的作者提供这么好的工具. 跟踪apk一般的做法是在反编译的sma ...

随机推荐

  1. iOS crash 崩溃问题的追踪方法

    http://www.cnblogs.com/easonoutlook/archive/2012/12/27/2835884.html iOS crash 崩溃问题的追踪方法 在调试程序的时候,总是碰 ...

  2. Linux下Redis使用

    1. 简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 2. 安装 安装方法如下: # yum i ...

  3. 【原创】Linux环境下的图形系统和AMD R600显卡编程(11)——R600指令集

    1 低级着色语言tgsi OpenGL程序使用GLSL语言对可编程图形处理器进行编程,GLSL语言(以下高级着色语言就是指GLSL)是语法类似C的高级语言,在GLSL规范中,GLSL语言被先翻译成教低 ...

  4. [Oracle] oracle统计信息

    Oracle统计信息 Oracle数据库里的统计信息可以分为6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 图 1: Oracle统计信息 基 ...

  5. python笔记-用python解决小学生数学题【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前几天有人在群里给小编出了个数学题: 假设你有无限数量的邮票,面值分别为 ...

  6. 负载均衡技术之-lvs

    LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来讲, CPU.I/O处理能力很快会成为瓶颈.由于单台服 ...

  7. js 抽奖小案例

    Luck Draw 在线演示:九宫格抽奖 对九宫格形式的抽奖页面进行了一些简单封装.以后有机会再更新其他形式的抽奖.

  8. HashSet底层存储元素的源码分析

    此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用 null 元素. HashSet<Strin ...

  9. 前台vue的使用简单小结

    前台vue的使用简单小结 本项目要求:安装有node.js 6.0以及以上安装npm使用vue.js官方安装方法初始化项目npm install安装VueResurce:npm install vue ...

  10. Java-静态代码块,构造代码块,构造函数

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次 构造代码块:类中直接用{}定义,每一次创建对象时执行. 执行顺序优先级:静态块, main(),函数,构造块,构造方法. 构造函数 pu ...