一、什么是Android 反编译

计算机逆向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、等要素,某些特定情况下可能推导出源代码。

二、Android 反编译工具

Android 应用程序只是一个数据和资源的归档文件。即使这样,我们不能简单地解压缩归档包.apk来获得可读的源代码,必须依赖于将字节代码(如在 classes.dex中) 转化为可读源代码。

1、dex文件

dex是 Android 系统的可执行文件,包含应用程序的全部操作指令以及运行时数据。

由于 dalvik 是一种针对嵌入式设备而特殊设计的 java 虚拟机,所以 dex 文件与标准的 class 文件在结构设计上有着本质的区别。

当 java 程序编译成 class 后, 还需要使用 dx 工具将所有的 class 文件整合到一个 dex 文件,目的是使其中各个类能够共享数据,在一定程度上降低了冗余, 同时也是为你教案结构更加紧凑,实验表明, dex文件是传统 jar 文件大小的50% 左右。

2、apktool 工具

apktool 主要用于逆向 apk文件,是将 .dex 文件转换为 smali 文件。smali 语言是Dalvik 的反编译语言。

apktool 是双向的,可进行反编译和重新编译。

下载安装

  • 下载 apktool.bat  开发页面后右键另存为bat文件,文件命名为:apktool.bat   保存类型选择所有文件

  • 下载 apktool.jar  选择最新版本下载然后重命名为 apktool.jar。

  • 创建文件夹自定义名称,如apktool,然后将 apktool.bat 和 apktool.jar 放置在该文件夹中。

  • 安装 JDK1.8 以上版本。

打开cmd 进入到 apktool文件目录,输入命令 apktool 看到如下提示说明安装成功。

逆向编译

apktool 编译命令: apktool d [path][app-name].apk  。  d标志表示反编译(decode)。

编译完成后会生成和apk包名一样的文件夹,文件夹里包含资源文件和代码的文件。

打包编译

当修改反编译后的文件或者代码之后,可以通过调用命令: apktool b [path] -o [target-app-name].apk 重新打包生成 apk 文件。

  • b: 表示build
  • o 表示指定生成的 apk 文件名称(output)
  • [path] 为源码文件夹

生成签名文件

上面打包编译生成的 apk 由于没有签名,还不能直接安装。可以自己生成一个签名文件,首先需要先安装好 jdk 环境。

使用 keytool 命令可以生成签名文件,操作如下:

  • -genkey 生成证书文件
  • -alias 产生别名
  • -keystore 指定密钥库的 .keystore 文件
  • -keyalg 指定密钥的算法,这里指定为 RSA(非对称密钥算法)
  • -validity 为证书有效天数

命令为: keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystor

然后根据提示输入对应内容

执行完成之后,会生成android.keystore文件

执行签名

执行签名操作如下:

jarsigner -verbose -keystore android.keystore -signedjar [生成的apk文件名]-signed.apk [需加密的apk文件名].apk android.keystore

  • -verbose 指定生成详细输出
  • -keystore 指定数字证书存储路径
  • -signedjar 指定要签名的apk文件
  • android.keystore 别名

Android APK 反编译相关推荐

  1. 【转】Android APK反编译就这么简单 详解(附图)

     转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...

  2. android apk反编译(获取源码,资源文件等)

    android apk反编译,是让你可以去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局是怎么实现的 一.当然我们也需要借助工具: apktool (资源文件获取,可以提取出图片文件和布局文件 ...

  3. android apk 反编译 工具下载,android APK反编译工具Apktool

    这是android APK反编译工具Apktool下载,集成 jd-gui.jad.dex2jar.apktool.使用该工具可以反编译apk文件,查看xml以及java源代码,默认使用jad反编译, ...

  4. Android APK反编译

    转自:http://blog.csdn.net/ithomer/article/details/6727581 一.Apk反编译得到Java源代码 下载上述反编译工具包,打开apk2java目录下的d ...

  5. Android APK反编译具体解释(附图)

    这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的 ...

  6. 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译

    反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...

  7. Android APK反编译就这么简单 详解(图文详解)

    前言 自己很早以前就在反编译,但是知道今天要做才又捡起来了,今天就把他记录下来吧. 工具准备 1.测试环境: win10 2.使用工具: 2.1 CSDN上下载地址: apktool dex2jar ...

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

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

  9. Android APK反编译就这么简单 详解

    转载原文:http://blog.csdn.net/vipzjyno1/article/details/21039349/ 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些 ...

  10. Android APK反编译详解 .

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

最新文章

  1. Qt Creator添加资源
  2. 我非要捅穿这 Neutron(一)网络实现模型篇
  3. Hyper-V安装ReactOS未成功
  4. 工业控制中无线局域网应用前景分析
  5. 132_Power BI之建模必备要素Power Query之数据表字段名称管理
  6. javascript的内置对象
  7. 各种未授权访问漏洞的复现与利用
  8. Android studio 或java打开txt文件
  9. 人脸服务器如何与门禁系统对接,人脸识别门禁与自动门接线图
  10. 查看动态库.dll是多少位的
  11. 计算机文件夹怎样显示隐藏文件,显示隐藏文件夹,教您电脑如何显示隐藏文件夹...
  12. 基本数据类型在传参中的自顶向下和自底向上;this;访问权限修饰符
  13. response.setHeader各种用法详解
  14. APP 专项测试之兼容性测试
  15. 周杰伦入局元宇宙?6200万个联名「幻象熊」40分钟全卖光
  16. 一花一世界 一树一菩提
  17. 各种线 你想知道的都在这里
  18. 这款不输5118伪原创文章生成器软件
  19. 破解索尼PS4系列:用户代码执行(二)
  20. MATLAB基础学习(五)-MATLAB矩阵介绍

热门文章

  1. python创意小作品代码-超全代码详解 Python 制作精美炫酷图表教程
  2. 适合初学者 :用Google map street view api 实现批量下载谷歌地图街景 in python
  3. 用nmap扫描内网conficker
  4. 冒险岛历代版本科普(干货)-琳琳冒险岛
  5. 泛微oa系统服务器怎么填写,泛微协同办公平台Ecology8安装部署手册(105页)-原创力文档...
  6. 计算机毕业论文性能测试怎么写,计算机专业毕业论文写作指导方法
  7. SCI 投稿Cover letter模板大全
  8. 网吧服务器系统安装,网吧服务器和客户端安装教程
  9. Matlab多种群遗传算法
  10. 万能采集网站php源码,PHP采集系统UZCMS万能最新版