如何获取Android反编译技术?java逆向工程怎么做?
创始人
2025-09-26 12:07:38
0

Android 反编译器有哪些

我们下载的AndroidApp安装包是一个Apk文件(AndroidApplicationPackage)。 通过Apk文件,我们还可以获取这个应用程序的代码和资源文件,并对应用程序进行更改。

那么我们如何获取这些文件呢? 这就需要Android反编译技术了。

计算机逆向工程(Reverse Engineering),又称计算机软件恢复工程,是指对别人软件的目标程序(如可执行程序)进行“逆向分析研究”,从而推导出别人软件中使用的思想的工作产品、原理、结构、算法等元素在具体情况下都可以推导出源代码。

Android反编译工具

Android 应用程序只是数据和资源的存档。 即便如此,我们也不能简单地解压存档 .apk 来获取可读的源代码。 对于这种情况,我们必须依靠将字节代码(如在classes.dex中)转换为可读的源代码。

dex 文件是哪些

dex是Android系统的可执行文件,其中包含应用程序的所有操作指令和运行时数据。

因为dalvik是专门为嵌入式设备设计的java虚拟机,所以dex文件和标准的class文件在结构设计上有本质的区别。

当java程序编译成class时apk软件,还需要使用dx工具将所有的class文件整合成一个dex文件。 目的是让各个类能够共享数据,在一定程度上减少了冗余,同时也使得文件结构更加紧凑。 实验表明dex文件大小约为传统jar文件大小的50%

dex2jar简介

dex2jar 可以将字节码 .dex 文件转换为可读的 .jar 文件。

下载并安装

首先,必须在笔记本上安装并配置Java环境。 点击下载地址:dex2jar下载地址,下载后直接解压。 解压后可以看到文件内容如右图:

4k影视软件apk_软件apk是什么意思_apk软件

执行编译

1、用压缩软件打开apk包,然后解压classes.dex文件,放到我们解压的dex2jar目录下。

如果包中存在classes.dexclasses2.dexclasses3.dexclasses4.dex...等文件,这是因为apk中的方法数量超过65536,并且使用了multidex支持库来拆分apk中的dex文件分成多个 dex 文件。 相关知识可以搜索android65k了解。

4k影视软件apk_软件apk是什么意思_apk软件

打开cmd进入dex2jar目录,执行命令d2j-dex2jar.batclasses.dex完成编译。

C:\Users\Shuqing
λ cd C:\Users\Shuqing\Desktop\dex2jar-2.0


C:\Users\Shuqing\Desktop\dex2jar-2.0
λ d2j-dex2jar.bat classes.dex
dex2jar classes.dex -> .\classes-dex2jar.jar

如果想覆盖已经生成的classes-dex2jar.jar文件,可以添加参数--force。

3、解压完成后,我们可以看到多了一个文件classes-dex2jar

apk软件_4k影视软件apk_软件apk是什么意思

京东GUI

JD-GUI 是一个独立的图形实用程序,可显示 .class 文件的 Java 源代码。 您可以使用 JD-GUI 浏览重建的源代码,以即时访问技巧和数组。

下载链接:

安装完成后,启动JD-GUI,导出其中生成的classes-dex2jar,依次点击File-Openfile加载,可以看到如下界面:

软件apk是什么意思_apk软件_4k影视软件apk

通常App会对代码进行混淆或加密以保证安全,所以通常反编译后的代码都是混淆后的代码,无法直接看到原始代码。

apk工具简介

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

Apktool与JD-GUI相比的主要优点是它是单向的。 这意味着,如果您反编译应用程序并对其进行更改apk软件,然后使用 Apktool 重新编译它,它将重新编译并生成新的 .apk 文件。 然而,dex2jar和JD-GUI无法完成类似的功能,因为它提供的是近似代码,而不是精确代码。

下载并安装

这里我们以Windows为例。 其他环境请参考:

要验证是否安装成功,可以打开cmd,进入apktool文件目录,然后输入命令apktool,看到如下提示则说明安装成功。

Apktool v2.4.1 - a tool for reengineering Android apk files
with smali v2.3.4 and baksmali v2.3.4
Copyright 2014 Ryszard Wiśniewski com>
Updated by Connor Tumbleson com>

usage: apktool
-advance,--advanced prints advance information.
-version,--version prints the version then exits
usage: apktool if|install-framework [options] ramework.apk>
-p,--frame-path
Stores framework files into .
-t,--tag Tag frameworks using .
usage: apktool d[ecode] [options]
-f,--force Force delete destination directory.
-o,--output
The name of folder that gets written. Default is apk.out
-p,--frame-path
Uses framework files located in .
-r,--no-res Do not decode resources.
-s,--no-src Do not decode sources.
-t,--frame-tag Uses framework files tagged by .
usage: apktool b[uild] [options]
-f,--force-all Skip changes detection and build all files.
-o,--output
The name of apk that gets written. Default is dist/name.apk
-p,--frame-path
Uses framework files located in .

For additional info, see: http://ibotpeaches.github.io/Apktool/
For smali/baksmali info, see: https://github.com/JesusFreke/smali

反向编译

apktool 编译命令 apktoolold[路径][应用程序名称].apk。 d 标志表示反编译(解码)。

C:\Users\Shuqing\Desktop\apktool
λ apktool d kaoyan.apk
I: Using Apktool 2.4.1 on kaoyan3.1.0.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\Shuqing\AppData\Local\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

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

eb6f59fb4e303f21170c2bcb7160ca57

打包编译

更改反编译的文件或代码后,我们可以调用命令 apktoolb[path][target-app-name].apk 重新打包生成 apk 文件。

C:\Users\Shuqing\Desktop\apktool
λ apktool b kaoyan -o new_kaoyan.apk
I: Using Apktool 2.4.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...

签名 生成签名文件

里面打包编译生成的apk因为没有签名所以不能直接安装。 因此,需要签名。 我们可以自己生成一个签名文件。 首先我们需要安装jdk环境。

使用keytool命令生成签名文件,如下:

λ keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: 51zxw
您的组织单位名称是什么?
[Unknown]: 51zxw.net
您的组织名称是什么?
[Unknown]: 51zxw2020
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的省//自治区名称是什么?
[Unknown]: beijing
该单位的双字母国家/地区代码是什么?
[Unknown]: 86
CN=sutune, OU=sutune.me, O=sutune2020, L=changsha, ST=hunan, C=86是否正确?
[]: y

输入 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:

执行完成后,会生成android.keystore签名文件。

执行签名

执行签名操作如下:

jarsigner -verbose -keystore android.keystore -signedjar  new_kaoyan-signed.apk  new_kaoyan.apk  android.keystore
输入密钥库的密码短语:
....(此处省略N)
正在签名: assets/newsdetail/ky_article.html
正在签名: assets/newsdetail/newsdetail.html
正在签名: assets/newsdetail/newsdetail_1.html
正在签名: assets/ShareSDK.xml
正在签名: assets/share_logo.png
正在签名: manifest
正在签名: com/tencent/mm/sdk/platformtools/rep5402863540997075488.tmp
jar signed.

这样,一个apk的签名过程就完成了,接下来就可以安装使用了。

注意:如果您的手机上已经有此apk,需要先卸载,否则签名冲突会导致安装失败。

相关内容

热门资讯

上海华通白银国际交易中心有限公...   随便弄一个APP就开始做白银贵金属期货交易,这些软件根本不靠谱!!!中国证监会相关规定,从事期货...
手... 手机文件治理器只是一个数据的治理系统,其对应的程序言件夹中不具有间接关上程序的图标按钮。 了解过...
比... 当天小编辑给各位分享好用的杀毒软件介绍的常识,其中也会对比拟不错的杀毒软件剖析解答,假设能处置你想了...
电... 电脑杀毒软件排行榜:1. 360杀毒软件:360杀毒是奇虎360出品的一款收费的云安保杀毒软件。 ...
网... 作为一位网络安保工程师,我以为网络安保工程和软件开发在难度和学习曲线方面存在肯定的差异,详细哪个更好...
如... 经常使用AE制造片段视频,咱们可以依照以下步骤启动,确保每一步都明晰明了:一、预备上班下载并装置AE...
信... 1. 坚信服科技股份有限公司是一家专一于企业级安保、云计算与IT基础架构的产品和服务供应商。 2...
比... 在笔记本电脑市场上,戴尔XPS系列、联想ThinkPad系列和苹果MacBook Pro被公以为性能...
微... 本文将引见一款名为“微易CAD图形绘制设计器”的软件,它专为须要图形设计的用户打造。 这款软件的...
买... NX580VD是一款高性能的轻浮笔记本电脑,可选配第7代英特尔® 酷睿™ i7 解决器,sRGB 全...
能... HC12远程图形上班站一、传统上班站1、布署在用户桌面2、员工可以对上班站上的数据领有相对的控制权3...
3... 在无需把握全新界面的状况下,你可以在Motion 4中轻松地在三维空间内创作动画。 这个3D多面...
a... AI是人工自动(Artificial Intelligence)的简称,是一种计算机算法和软件,经过...
做... 在启动包装设计成果图的制造环节中,有几款罕用的3D软件可供选用,以下是其中几个较为盛行的选项: :只...
求... 一、用于 3D 建模和渲染的最佳解决器 (CPU) CPU:Intel i9 K或AMD Ryzen...
p... 郑州清大电脑培训学校开设有这样的课程,费用很低,包学会,地址:郑州文明路英才街北大学城。 随到随...
罕... 罕用的办公软件有:Microsoft Office系列软件、WPS Office、Adobe Acr...
一... 学习办公软件并不难,假设你是做行政文员什么的,学习一个星期差不多就够了,但要每天都保持练习。 如...
微... office办公软件有以下五个版本一Office 2007 office2007是微软Office产...
办... 办公软件的内容包括以下几个方面: 1. 文字解决软件。 这是办公软件的外围局部,关键用于文档的编...