需要工具:

  1.apktool apk打包工具

  下载地址:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2

  安装:直接解压即可,是一个apktool.jar文件,通过

  1. $java -jar apktool.jar
  $java -jar apktool.jar

  来运行,依赖于java运行环境

  2.dex2jar dex转化jar工具

  下载地址:http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

  安装:直接解压即可,是一个文件夹,里面包含了很多文件,通过

  1. $./dex2jar.sh
$./dex2jar.sh

  来运行

  3.如果你没有unzip,安装此解压工具, zip解压缩工具,用于解压jar包(jar包是zip压缩的,所以可以用其它工具代替)

  下载地址:ubuntu $sudo apt-get install unzip

  安装: $sudo apt-get install unzip

  1. $upzip [src_path] -d [dst_path]
        $upzip [src_path] -d [dst_path]

  来运行

  4.jad .class文件反编译工具

  下载地址:http://www.varaneckas.com/jad

http://varaneckas.com/jad/jad158e.linux.static.zip

  安装:直接解压即可,是一个可执行文件,通过  

./jad

  来运行。需要说明的是,这个需要下载static版本的,如果不行的话,在去第一个链接里找另一个下载。


  接下来,工具准备完毕了,最好设定一下环境变量,我们就可以反编译apk了

  一、抽取apk资源

执行: $java -jar apktool.jar d [source.apk]

  二、反编译源码

  (1)解压apk

  1. $unzip [source.apk] -d [step_1]
  $unzip [source.apk] -d [step_1]

  step_1指的是你所需要解压到的目录

  (2)进入step_1 目录,找到classes.dex文件,将dex文件转化成jar文件

  1. $dex2jar.sh classes.dex
$dex2jar.sh classes.dex

  (3)获得一个classes_dex2jar.jar文件,我们现在要再度解压这个文件

  1. $upzip classes_dex2jar.jar -d [step_3]
        $upzip classes_dex2jar.jar -d [step_3]

  step_3指的是你解压到的目录

  (4)我们获得一个step_3目录,我们接下来要反编译该目录下所有.class文件  

  1. $./jad -o -r -s  java -d  src step_3/**/*.class
        $./jad -o -r -s  java -d  src step_3/**/*.class

对于上面的参数,可以直接执行./jad查看,或者Readme.txt查看

  (5)我们再度获得一个src目录,该目录下就是反编译好的源码文件了。

也可以使用JD-GUI工具直接查看classes_dex2jar.jar的class文件。

如果以上命令不执行的话,查看目录是否正确。

linux下的APK反编译软件及过程介绍 .的更多相关文章

  1. linux在下面APK反编译软件和过程的描述

    需要的工具: 1.apktool apk打包工具 下载地址:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2 安装:直接 ...

  2. Ubuntu下Android apk反编译

    需要用到的工具 1.apktool_2.0.3.jar https://bbuseruploads.s3.amazonaws.com/0becf6a1-1706-4f2e-9ae6-891e00a8d ...

  3. CENTOS 下安装APK反编译工具 APKTOOL

    转于:http://www.qiansw.com/centos-apk-apktool.html 我使用的是CentOS6.4 64位的系统.首先需要下载两个包.这里下载:https://code.g ...

  4. (转)Android-Mac电脑如何进行APK反编译-使用apktool、jd-gui

    最近群里有人问如何在mac下进行apk反编译,我也没试过,以前都是在windows下进行反编译的,windows下很简单,有许多比较好的集成工具,如apkide(改之理),不过我猜mac下应该和win ...

  5. android之apk反编译

    今天就来详细的讲一讲apk的反编译过程,之前自己一直没彻底搞清楚. 一.准备工作 反编译首先要准备三个工具.这三个工具都是可以百度下载的.就是下图所示的三个工具. 这三个工具是有各自作用的: (1)a ...

  6. apktool 在mac下的使用 -反编译安卓apk文件

    1.下载apktool 点击这里下载 ,里面有两个文件,一个是.jar,一个是自己写的脚本.sh 注:最新的apktool.jar 文件可以点击这里下载 .sh脚本是自写脚本可不用更新最新,下载的ja ...

  7. Mac下对Android apk反编译

    在Mac上进行反编译apk,需要三个工具,分别为(附下载地址): apktool,下载Mac版 作用:资源文件获取,能够提取出图片文件和布局文件进行使用查看 dex2jar,下载最新的即可,目前是2. ...

  8. apk反编译、smali修改、回编译笔记

    最近下了一个apk程序,但是一启动会弹出一个流氓广告.这个广告不是原厂商加的,而是有人在原有apk程序的基础上,加了一个壳,让apk先启动他加的广告,再启动原来的程序,很恶心.于是想去掉它. 试了几个 ...

  9. Android APK反编译详解(附图)

    转载自http://blog.csdn.net/sunboy_2050/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而 ...

随机推荐

  1. 将常用的Android adb shell 命令行封装为C#静态函数

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 简介:adb命令是常用的Android命令行,自动化.代码调试.手工排查问题都会用的到,这里将常用的一些命令行封装 ...

  2. Round trip 流程图

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!

  3. 轮询、长轮询、长连接、flash socket 的区别

    轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 优点:后端程序编写比较容易. 缺点:请求中有大半是无用,浪费带宽和服务器资源. 实例:适于小型应用. 长轮询:客 ...

  4. 制作 alipay-sdk-java包到本地仓库

    一.首先 搭建好maven 基础环境,本地可以运行maven 命令 从支付宝官网上下载sdk https://doc.open.alipay.com/doc2/detail?treeId=54& ...

  5. 51NOD 1220 约数之和 [杜教筛]

    1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)​\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mi ...

  6. 高斯消元 & 线性基【学习笔记】

    高斯消元 & 线性基 本来说不写了,但还是写点吧 [update 2017-02-18]现在发现真的有好多需要思考的地方,网上很多代码感觉都是错误的,虽然题目通过了 [update 2017- ...

  7. .NET Core版本七牛云SDK使用

    一.问题背景 公司目前正在将一部分的业务从.NET平台准备迁移到.NET Core上去,同时也准备启用docker进行.NET Core的部署,在项目迁移过程中,不可避免的碰到有些SDK只有在.NET ...

  8. 【IT人】如何提高阅读源代码的效率

    1.最近刚到公司,公司就发一架构代码自己看,看了几天看的想吐,也在网上找了下相关的技巧吧,不是有句话叫做:成功必有方法,失败总是借口! 2.借鉴别人的方法来看看如下: 记得在开源流行之前,我看过的代码 ...

  9. Microsoft Visual Studio 中出现 Windows has triggered a breakpoint in xxx.exe的一个解决方案

    今天在用VS发布Release版本的过程中,碰到了一个问题,就是程序编译没有问题,但是在运行过程中出现了 根据经验,此类问题一般都是由于程序开发过程中的代码编写不规范导致内存写覆盖或者是使用了不同版本 ...

  10. golang使用http client发起get和post请求示例

    [转自 http://www.01happy.com/golang-http-client-get-and-post/ ] get请求 get请求可以直接http.Get方法,非常简单. 1 2 3 ...