Android APK 反编译
一、什么是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 反编译相关推荐
- 【转】Android APK反编译就这么简单 详解(附图)
转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...
- android apk反编译(获取源码,资源文件等)
android apk反编译,是让你可以去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局是怎么实现的 一.当然我们也需要借助工具: apktool (资源文件获取,可以提取出图片文件和布局文件 ...
- android apk 反编译 工具下载,android APK反编译工具Apktool
这是android APK反编译工具Apktool下载,集成 jd-gui.jad.dex2jar.apktool.使用该工具可以反编译apk文件,查看xml以及java源代码,默认使用jad反编译, ...
- Android APK反编译
转自:http://blog.csdn.net/ithomer/article/details/6727581 一.Apk反编译得到Java源代码 下载上述反编译工具包,打开apk2java目录下的d ...
- Android APK反编译具体解释(附图)
这段时间在学Android应用开发,在想既然是用Java开发的应该非常好反编译从而得到源码吧,google了一下,确实非常easy,下面是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的 ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
- Android APK反编译就这么简单 详解(图文详解)
前言 自己很早以前就在反编译,但是知道今天要做才又捡起来了,今天就把他记录下来吧. 工具准备 1.测试环境: win10 2.使用工具: 2.1 CSDN上下载地址: apktool dex2jar ...
- Android APK反编译详解(附图)(转)
原文转自:http://blog.csdn.net/ithomer/article/details/6727581 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到 ...
- Android APK反编译就这么简单 详解
转载原文:http://blog.csdn.net/vipzjyno1/article/details/21039349/ 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些 ...
- Android APK反编译详解 .
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...
最新文章
- Qt Creator添加资源
- 我非要捅穿这 Neutron(一)网络实现模型篇
- Hyper-V安装ReactOS未成功
- 工业控制中无线局域网应用前景分析
- 132_Power BI之建模必备要素Power Query之数据表字段名称管理
- javascript的内置对象
- 各种未授权访问漏洞的复现与利用
- Android studio 或java打开txt文件
- 人脸服务器如何与门禁系统对接,人脸识别门禁与自动门接线图
- 查看动态库.dll是多少位的
- 计算机文件夹怎样显示隐藏文件,显示隐藏文件夹,教您电脑如何显示隐藏文件夹...
- 基本数据类型在传参中的自顶向下和自底向上;this;访问权限修饰符
- response.setHeader各种用法详解
- APP 专项测试之兼容性测试
- 周杰伦入局元宇宙?6200万个联名「幻象熊」40分钟全卖光
- 一花一世界 一树一菩提
- 各种线 你想知道的都在这里
- 这款不输5118伪原创文章生成器软件
- 破解索尼PS4系列:用户代码执行(二)
- MATLAB基础学习(五)-MATLAB矩阵介绍
热门文章
- python创意小作品代码-超全代码详解 Python 制作精美炫酷图表教程
- 适合初学者 :用Google map street view api 实现批量下载谷歌地图街景 in python
- 用nmap扫描内网conficker
- 冒险岛历代版本科普(干货)-琳琳冒险岛
- 泛微oa系统服务器怎么填写,泛微协同办公平台Ecology8安装部署手册(105页)-原创力文档...
- 计算机毕业论文性能测试怎么写,计算机专业毕业论文写作指导方法
- SCI 投稿Cover letter模板大全
- 网吧服务器系统安装,网吧服务器和客户端安装教程
- Matlab多种群遗传算法
- 万能采集网站php源码,PHP采集系统UZCMS万能最新版