如何获取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黑幕揭秘:内盘操...   大浪淘金APP平台最隐蔽的黑幕,在于其完全封闭的内盘交易系统。这个看似与国际市场接轨的交易平台,...
告别固定工资实现财富自由?一品...   普通投资者被广告宣传诱导,注册就送现金,充值返现金券等等这些宣传方式,都是在引流到平台开户,不怕...
哈易购APP打着现货交易幌子搞...   网络上各类白银、铂金等贵金属投资广告铺天盖地,不少平台以"现货交易"为名,暗中却从事着非法期货交...
5元起投!高额收益?中国白银、...   上海华通白银国际交易中心有限公司(以下简称“华通白银国际”)打着“白银、铂金现货订购”的旗号,实...
"九州订购APP、起...   近年来,贵金属投资热度持续攀升,但乱象也随之而来。一些不法分子趁机搭建虚假交易平台,打着"低门槛...
坚锅淘金APP投资者频繁爆仓亏...   坚锅淘金APP对外宣称是贵金属现货交易平台,日常出入金看似畅通无阻,给人一种合规运营的假象。但事...
斗金订购APP“5元订购现货”...   斗金订购APP“5元订购现货”骗局揭秘:充值易、回本难,越陷越深!  许多投资人在未核实平台合规...
贵金属APP乱象曝光:&quo...   当前市场上部分贵金属类APP未取得正规交易资质,涉嫌误导消费者参与白银、铂金等商品的非合规交易!...
华通白银、银宝街APP被指虚假...   警惕现货白银投资陷阱:上海华通白银背后的平台涉嫌非法期货交易  近年来,各类现货白银交易平台以“...
充值送300,月入过万?别被量...   如今,网络上充斥着大量未经批准的贵金属及其他产品订购交易平台。这些平台普遍缺乏合法经营资质,却将...
鑫汇智投APP贵金属非法期货、...   鑫汇智投APP贵金属非法期货、人为控盘,大量投资者遭恶意收割  鑫汇智投APP长期以“低门槛、高...
矅光智策APP非法贵金属交易骗...   不少投资人在矅光智策APP上进行贵金属交易后出现了严重亏损。许多人在下载该平台时,根本不清楚其是...
飞鸽订购APP非法期货交易骗局...   飞鸽订购APP非法期货交易骗局,很多投资者根本没搞懂规则就盲目充值,买涨买跌跟买cai票一样!平...
天龙白银APP被操控的非法期货...   中小投资者在网络平台参与商品现货订购交易,表面看似合规合法,实则暗藏诸多难以察觉的风险。商品现货...
下载送试玩金?千万别碰!带你揭...   当前,许多贵金属APP交易平台正采用欺诈性营销手段。它们通过抖音等短视频平台,以“5元起投”“充...
泡泡淘金APP骗局:打着&qu...   泡泡淘金APP骗局:打着"商品订购"幌子,实则非法期货收割投资者!投资需谨慎,切勿轻信“高额回报...
南商云购APP虚假电子盘背后的...   南商云购是虚假电子盘吗?它是否具备合规的交易资质?这个曾经的"现货电子盘"如今摇身一变,披上了"...
警惕"祥龙订购&qu...   祥龙订购APP、掌上银牛APP等平台背后的运营方——四川禄宏商品现货市场有限公司,仅具备现货交易...
中国白银、华银:虚假宣传、后台...   中国白银APP宣称是上市公司“中国白银集团”与“上海华通白银国际交易中心”旗下的现货交易平台,提...
起底“优品订购”APP非法期货...   “优品订购”APP根本不具备任何合法的交易资质。其背后的运营方仅凭随便注册一家公司、开发一款交易...