linux下反编译android apk
1、所需要的工具
1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等,
下载地址:https://code.google.com/p/android-apktool/downloads/list
需要下载apktool1.5.2.tar.bz2 和apktool-install-Linux-r05-ibot.tar.bz2 这两个文件,并把解压后的文件放在同一个文件夹中。
2)dex2jar,功能:反编译出jar文件,即apk的源程序文件的字节码,
下载地址:http://code.google.com/p/dex2jar/downloads/list
3)jdgui,功能:查看dex2jar反编译出的jar文件,使用该工具可以看到字节码对应的Java源代码,这个我在官网上没有找到,然后自己在网上下载的,但试验过能用。点击打开后,如下图所示:
2、反编译过程
1)反编译出资源文件
使用apktool工具,进入apktool所在的目录下,使用如下的命令:
./apktool d ./xxx.apk(apk所在的路径)
d表示decode,在当前目录下就会生成一个名为xxx的目录,里面就是反编译出来的各种资源文件,其中res表示资源文件,smali表示源代码,不过是字节码,不能直接查看。
以本人的实验为例子,如下图所示:
此时会在当前目录下生成一个目录app-debug。
2)源代码的反编译
a)因为apk文件其实是使用zip进行打包压缩生成的文件,所以先把xxx.apk文件改名为xxx.zip文件,并对其进行解压。
b)进入解压后的目录,其中有一个classes.dex文件,这个文件就是java文件编译再通过dx工具打包而成的,源代码就包含在这个文件中。
c)把前一步生成的文件classes.dex复制到dex2jar工具的根目录中,并使用如下命令对其进行反编译:
./dex2jar.sh d classes.dex
就会在当前目录下生成一个classes_dex2jar.jar文件
d)点击打开jdgui工具,这是一个图形化的工具,然后打开上上述的classes_dex2jar.jar文件就可以看到apk对应的源代码。
对于本人的实验如下:
源代码与反编译出来的代码比较如下(白色为反编译内容,黑色为原内容):
linux下反编译android apk的更多相关文章
- 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse
一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...
- mac下反编译android apk
所需要的工具 http://pan.baidu.com/disk/home#path=%252Fandroid%252Fdecompile%252Fapktool-all apktool用于将资源文件 ...
- Mac 下反编译Android APK
准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...
- 反编译Android APK及防止APK程序被反编译
怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...
- 实例具体解释:反编译Android APK,改动字节码后再回编译成APK
本文具体介绍了怎样反编译一个未被混淆过的Android APK,改动smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk不管输入什么样的username和password都能 ...
- 反编译android APK
我们经常会在如下的情况使用反编译 1.看到别人应用中的酷炫功能,想知道是如何实现的 2.别人应用的素材排版好漂亮,想套用模仿 百度一下就已经有一大堆反编译的教程了,我还是坚持学习记录一下. A ...
- Mac上反编译Android apk安装包
什么是反编译 我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译.Android的反编译分成两个部分: 一 ...
- 只需三步--轻松反编译Android Apk文件
安卓程序是通过java语言进行编写的,可以很容易进行反编译.很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓.下面我们来看看如何进行apk的反编译,以及常用的防反编译手段. 一.反编译A ...
- 反编译Android的apk包得到源码(使用工具:dex2jar和jd-gui)
1. 先从 http://download.csdn.net/detail/dingyuming1991/9618125 下载反编译工具dex2jar和jd-gui(当然也可以google搜索下载): ...
随机推荐
- 英语口语练习系列-C31-图书-谈论事物-白雪歌送武判官归京
book your favorite book a story in your childhood a character in film or TV 词汇 含义 备注 trend 趋势 indivi ...
- Python2048小游戏demo
# -*- coding:UTF-8 -*- #! /usr/bin/python3 import random v = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, ...
- go 单元测试时读取配置文件
在go项目中读取配置文件时,如果使用的是相对路径,在执行run test时也会在test文件所在的目录下去读取配置文件,如果文件没在此目录下会报错:“open env1.json: The syste ...
- React Native小白入门学习路径——一
前言 过去这段时间一直忙着实验室考核任务,拼尽全力完成了自己的任务之后.正准备开始高强度的实验室的学习的时候,实验室组织了新老生交流会,这也应该是头一次这么近距离的面对大四前辈交流想法.感觉自己受益颇 ...
- [计算机视觉]掩膜(mask)
转自->这里 刚开始涉及到图像处理的时候,在OpenCV等库中总会看到mask这么一个参数,非常的不理解,在查询一系列资料之后,写下它们,以供翻阅. 什么是掩膜(mask) 数字图像处理中的掩膜 ...
- shell脚本使用技巧4--读取字符,重复执行
ls | cat -n > out.txt 给输出的信息加行号并导出到out.txt 利用shell生成一个独立的进程 pwd; (cd /bin; ls); pwd; 开启一个子shell,不 ...
- c c++ 函数不要返回局部变量的指针
结论:普通的变量(非new的变量)都是系统自动分配的,在栈空间(连续分配),无需程序员操作,速度快,但是...空间有限,不适合大量数据,大量的话就需要自己new new出来的变量是处于大容量的堆空间, ...
- list-循环小练习(作业已交未交)
报错 list index out of range : 超出下标 这个错误是因为在写stus列表的时候写成了如下stus=['小花,未交'] ,但是取下标的时候取的是stus[1]:实际该列表中 ...
- 【贪心】[hdu1052]Tian Ji -- The Horse Racing(田忌赛马)[c++]
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- Firefly-RK3399笔记
有用的连接: Rockchip官方资料: http://opensource.rock-chips.com/wiki_Main_Page http://opensource.rock-chips.co ...