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. 用vs2008和vs2005创建win32 console application

    http://blog.sina.com.cn/s/blog_4900be890100s735.html 对于经常使用vc6.0的人来说,创建一个win32 console application很简 ...

  2. 配置wpa_supplicant调试wifi linux下命令行连接wifi

    调试wpa_supplicant先读一下对应的README.txt文件.根据README.txt修改编译配置. wpa_supplicant需要打开以下开关进行编译CONFIG_DRIVER_NL80 ...

  3. springBoot开启热部署

    springBoot开启热部署 这里使用devtools工具开启热部署 〇.搭建springbboot基础环境 一.添加依赖 <dependency> <groupId>org ...

  4. Fiddler抓包2-只抓APP的请求【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6582437.html 前言 fiddler抓手机app的请求,估计大部分都会,但是如何只 ...

  5. Python3在Windows安装配置及简单试用

    1,安装配置 安装版本是Python3.5,我的安装路径是E:\ImProgram\Python35 添加环境变量,将上述路径加入到path中 这样cmd打开命令窗口,输入python就能看到调用成功 ...

  6. Laravel中setAttribute和queryScope的用法

    setAttribute使用场景: 数据在存入数据库的时候需要进行预先处理,每次都会写很多重复代码,使用 setAttribute之后就可以在数据填充时自动完成. setAttribute的写法:se ...

  7. [BZOJ1051][HAOI2006] 受欢迎的牛 tarjan求联通分量

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5687  Solved: 3016[Submit][Sta ...

  8. (6)java基础知识-基本数据类型、数据类型转换

    一.基本数据类型 基本的数据类型一共有四类八种 1.整型 byte:  1字节 取值范围 -128~127 short: 2字节    取值范围 -32768~32767 int:     4字节 取 ...

  9. 洛谷 P1049 装箱问题【正难则反/01背包】

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余 ...

  10. 学习sphinx

    在我们php开发中如何使用sphinx技术? 答:对应MySQL数据库中的字段,就是将字段中的中文信息拆分成多个词语,然后对这些词语建立索引.以后查询的时候,先去查询这些索引文件,然后返回这些满足条件 ...