android将apk反编译为源码

author author     2023-04-11     703

关键词:

参考技术A 将 apk 解压,在解压后的文件夹中可以找到 classes.dex 文件。(除了 classes.dex 文件,可能还会有 classes2.dex , classes3.dex 等等,本文以 classes.dex 为例,对其他几个 dex 文件的操作是类似的)

使用 dex2jar 工具,将 dex 文件转换为 jar 文件

使用方式:

执行命令后,生成的 classes-dex2jar.jar 就是我们需要的 jar 文件。

使用 Luyten 工具查看 jar 文件,就能看到反编译后的源码了。

本例中, classes.dex 文件中存储的是 android 的一些基础库,实际编写的源码在 classes3.dex 中,对 classes3.dex 执行第二步,查看生成的 classes3-dex2jar.jar 文件,可以看到如下内容:

这就是反编译 apk 的基本操作了。

Cmder 是一个非常好用的命令行工具。

效果如下:

只需要执行 apk2jar 命令,就可以实现把 apk 解压到 apk_ 文件夹中,并将 apk_ 文件夹中的 classes.dex 文件转换为 jar 。原理就是通过 Cmder 添加别名,把上述的第一步和第二步中执行的命令行组合起来了。

为 Cmder 添加别名很简单,编辑 Cmder安装目录\config\user_aliases.cmd 文件,将别名添加到里面即可。本例添加的别名如下:

其中:

如何将 .hex 文件反编译为 Arduino 的 C++?

】如何将.hex文件反编译为Arduino的C++?【英文标题】:HowdoIdecompilea.hexfileintoC++forArduino?【发布时间】:2013-05-1808:26:09【问题描述】:我有一个hex文件,该文件将被闪存到运行在Arduino设备上的Atmel芯片上。在将其放入我的Arduino之前... 查看详情

如何将 .NET EXE 反编译为可读的 C# 源代码?

】如何将.NETEXE反编译为可读的C#源代码?【英文标题】:HowdoIdecompilea.NETEXEintoreadableC#sourcecode?【发布时间】:2010-09-1520:04:47【问题描述】:几年前我为客户编写了一个C#应用程序,但我不再拥有源代码。我所拥有的只是我在客户... 查看详情

反编译 APK 上的 .smali 文件 [重复]

】反编译APK上的.smali文件[重复]【英文标题】:Decompile.smalifilesonanAPK[duplicate]【发布时间】:2011-07-3118:26:50【问题描述】:我下载了APKManager,它可以让我解压APK文件。但它只是将其解包,不会将.smali文件反编译为.java。.smali可以... 查看详情

反编译 APK 上的 .smali 文件 [重复]

】反编译APK上的.smali文件[重复]【英文标题】:Decompile.smalifilesonanAPK[duplicate]【发布时间】:2011-07-3118:26:50【问题描述】:我下载了APKManager,它可以让我解压APK文件。但它只是将其解包,不会将.smali文件反编译为.java。.smali可以... 查看详情

如何将android项目编译为apk

】如何将android项目编译为apk【英文标题】:howcanIcompileandroidprojecttoapk【发布时间】:2022-01-0622:00:48【问题描述】:第一次使用android,我没有安装androidstudio!刚刚克隆了一个项目,根据看到的gradlew.bat文件搜索。但是当我运行它... 查看详情

如何将 android 项目作为库导入而不是将其编译为 apk (Android studio 1.0)

】如何将android项目作为库导入而不是将其编译为apk(Androidstudio1.0)【英文标题】:HowtoimportandroidprojectaslibraryandNOTcompileitasapk(Androidstudio1.0)【发布时间】:2015-02-1615:28:32【问题描述】:我尝试导入一个项目(projLib)作为另一个项目... 查看详情

为啥将class反编译为java后,java直接编译时有错误

我将一个小的手机java软件解压后,有一个class文件,想要反编译为java后改写代码,可是反编译后的java,即使没有更改的时候,仍然不能编译,错误提示是软件包javax.microedition.midlet不存在importjavax.microedition.midlet.MIDlet;和软件包jav... 查看详情

apk骨架分析

APK反编译的一般步骤是:后辍apk改为rar用winrar等工具解压使用apktool反编译图片和xml使用dex2jar将解压得到的classes.dex文件转为jar文件使用jd_gui(图形版jad)将jar文件反编译为可读的java源文件不过更简单地可以使用众多软件集合APK改... 查看详情

谁能帮我把一个hex文件反编译为c语言文件?

文件有两种,一种是文本文件,一种是程序二进制文件,不管哪种文件都可以用十六进制编码来显示,称为hex文件。1、文本Hex文件一般不需要转成C语言,更多的是程序二进制文件,用十六进制显示,可以转换成C语言,一般使用... 查看详情

安卓apk反编译修改重新打包签名全过程

首先明确,反编译别人apk是一件不厚道的事情。代码是程序员辛苦工作的成果,想通过这种手段不劳而获,是不对的。这也说明,代码混淆是非常重要的。本文抱着学习的态度,研究在一些特殊的情况下如果有需要,该怎么反编... 查看详情

apk反编译(代码片段)

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况... 查看详情

无法将 MIT App Inventor App 编译为 APK

】无法将MITAppInventorApp编译为APK【英文标题】:UnabletoCompileMITAppInventorApptoAPK【发布时间】:2017-04-1117:22:23【问题描述】:当我尝试将我的AppInventor2应用程序编译为APK时,我收到以下消息:Thisistheerrormessage:Thisismycode:我该怎么办?... 查看详情

Kivy/KivyMD 应用程序在编译为 .apk 后在 Android 上崩溃

】Kivy/KivyMD应用程序在编译为.apk后在Android上崩溃【英文标题】:Kivy/KivyMDapplicationcrashesonAndroidaftercompilingto.apk【发布时间】:2021-10-1601:55:58【问题描述】:我也是Python和Kivy的新手,所以请帮助我。所以我想将我的应用程序编译为... 查看详情

怎么把app转换成dex

...参考技术B将App转换为.dex文件的方法是首先使用apktool将App反编译为smali文件,然后使用dx工具将smali文件重新编译为.dex文件。 查看详情

androidapk反编译工具jadx(代码片段)

...s://github.com/skylot/jadxJADX支持将APK,dex,aar,zip中的dalvik字节码反编译为Java代码,也支持反编译AndroidManifest.xml和resources.arsc资源。JADX安装首先安装JDK1 查看详情

如何在不启动模拟器的情况下在 Eclipse 中将 Android 项目编译为 .apk 文件?

】如何在不启动模拟器的情况下在Eclipse中将Android项目编译为.apk文件?【英文标题】:HowdoyoucompileanAndroidprojectintoan.apkfileinEclipsewithoutlaunchingtheemulator?【发布时间】:2011-12-0917:33:32【问题描述】:我只是想知道,因为我有自己的... 查看详情

Android 将 C++ 转换/编译为 Neon

】Android将C++转换/编译为Neon【英文标题】:Androidconvert/compileC++asNeon【发布时间】:2014-04-2306:51:58【问题描述】:我目前正在使用C++在JNI和OpenCV的帮助下编写一个简单的Android程序。输入是存储为Mat的图像。我不想使用OpenCV的normali... 查看详情

apk反编译工具与使用方法

...程度的还原apk中的manifest文件和资源文件。使用apktool工具反编译apk文件比直接解压同一个apk文件大;还可以将反编译之后的apk重新打包成apk文件,但需要重新签名,才能安装使用。2、dex2jar官方下载地址作用:将APK直接解压后,... 查看详情