如何获取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,需要先卸载,否则签名冲突会导致安装失败。

相关内容

热门资讯

即... 又生小学网上报名系统已开通测试。 您可以登录广州市义务教育学校招生报名系统报名参加考试!开放时间:4...
越... 越南翻译软件是一种非常便捷的工具,可以帮助人们快速准确地进行越南语言的翻译。而为了满足不同用户的需求...
真... 软件界面简洁大气,没有任何花里胡哨的功能,首页主要当下最新最热门的有声内容推荐以及内容分类。软件内有...
文... 文华财经指标公式博易大师软件指标公式文华期货移动均线指标风险提示:本指标公式仅作为知识分享,不构成任...
鹏... 鹏野云计价i20提供清单、配额多种录入方式,方便成本人员快速上手,提高清单编制效率。脚步01.如何进...
办... 点击关注并设置星星以避免迷路。 朋友们可以第一时间收到文章推送,再也不用担心错过最新资讯了!你好! ...
软... 软件与区块链学院邀请南昌市科学技术协会三级调研员、 科技社团党委书记杜敏来校做讲座为提高青年教师的科...
E... ERP财博企业管理软件:它可以:帮助您企业大量的节省人力时间成本,大幅度提高管理效率和企业形象,动态...
S... 下载软件[软件名称]:SW 2024[软件语言]:简体中文 [安装环境]:Win11/Win10[下...
“... 电视家被关停已经有一段时间了。当时,电视家可以说是突然消失的。在11月底时,众多网友发现自己家的电视...
U... 下载软件[软件名称]:UG/NX 12[软件语言]:简体中文 [安装环境]:Win11/Win10/...
关... 首先说明一下,本文适用于江苏弱电工程行业的人士。 仅供其他地区参考。很多朋友都想学习成本核算,尤其是...
第... ​↑上图来自网络今天我们将连续更新第七期Avee Music Player for Android模...
腾... 我们知道,如果安装了腾讯电脑管家、360等软件,很容易招来全家的麻烦。今天小编要给大家带来的是这些软...
微... 微软系统中隐藏着很多实用的技巧,可以节省我们很多时间。 比如下面介绍的一些技巧可能是你不知道的! ...
i... 【纳言】iOS15苹果WWDC21 几分钟看懂开发者大会的科技美学点击下方小程序即可观看视频今天,苹...
如... 大家好,我是每天要准时下班的大大!如何获得漫画脸部照片? 想要将您的照片变成漫画吗? 如今有许多应用...
选... 在我们的日常工作和生活中电脑桌面显示的记事本软件,我们经常需要记录各种重要信息、待办事项或灵感。 为...
图... 大家好,我是君君~在日常工作或学习中,经常需要接触大量图​​片的朋友通常会将图片转换为PDF格式,以...
C... 录像片段视频编辑:视频的剪切和编辑。包括:添加媒体、剪切视频和音频剪辑、添加注释、添加转场、添加行为...