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. django怎么自己创建一个中间件

    中间件是什么? 中间件是类似flask函数中钩子函数的东西.可以在请求视图函数前,或者视图函数响应后处理某些事情.中间件对全部视图都有效! 中间件一般会有两个方法,process_request和pr ...

  2. 【linux高级程序设计】(第九章)进程间通信-管道 3

    有名管道 无名管道和有名管道: 1. 管道是特殊类型的文件,在满足先入先出的原则写可以读写,不能定位读写位置. 2.管道是单向的. 3.无名管道阻塞于读写位置,而有名管道阻塞在创建位置. 4.无名管道 ...

  3. win7下提权代码

    inline BOOL SetPrivilege() { HANDLE hProcess, hToken; TOKEN_PRIVILEGES NewState; LUID luidPrivilegeL ...

  4. Mysql 通用二进制包安装

    通用二进制包安装 注意:这里有严格的平台问题: 使用时:centos5.5版本   (类似Windows下的绿色包) 下载(mirrors.sohu.com/mysql)   直接使用tar 解压到指 ...

  5. luogu P1041 传染病控制

    题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带 ...

  6. [POI2006]Periods of Words

    题目大意: 给定一个长度为$n(n\leq10^6)$的字符串$S$,定义一个串$S$的最大周期为一个不为$S$的字符串$Q$,满足$Q$为$S$的前缀且$S$为$QQ$的前缀.求字符串$S$的每一个 ...

  7. Intent创建Activity

    1,布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  8. Linux常用网络带宽监控工具(转)

    本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ...

  9. VMware Converter 迁移物理机到 esxi 虚拟机

    http://dngood.blog.51cto.com/446195/685082/ VMware Converter  有啥用? VMware Converter 是一款能将物理电脑系统.VMwa ...

  10. JAVA常见算法题(八)

    package com.xiaowu.demo; /** * 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加), ...