androidapk反编译详解(附图)

阳光岛主 阳光岛主     2022-10-22     431

关键词:

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。


本文Android反编译教程,测试环境:

Win7 Ultimate x64

Ubuntu 12.04 x86_x64

反编译工具包 下载 (2012-10-10更新)


一、Apk反编译得到Java源代码

下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。

apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件

源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码


dex2jar 和 jdgui 最新版本下载,分别见google code:

dex2jar(google code)

jdgui(google code),最新版本请见 官方


具体步骤:

首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。

在命令行下定位到dex2jar.bat所在目录,运行

dex2jar.bat    classes.dex

生成

classes_dex2jar.jar


然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:



HelloAndroid源码在反编译前后的对照如下:

 



二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

如果是汉化软件,这将特别有用

首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载

apktool(google code)


具体步骤:

下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exeapktool.batapktool.jar 

注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar


在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat  d  -f   abc123.apk   abc123,如下图:

 

上图中,apktool.bat 命令行解释:apktool.bat   d  -f    [apk文件 ]   [输出文件夹]


反编译的文件如下(AndroidManifest.xml为例):



将反编译完的文件重新打包成apk,很简单,输入apktool.bat   b    abc123(你编译出来文件夹)即可,命令如下:

 

打包apk后的文件在目录C:\\HelloAndroid下,生成了两个文件夹:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok



三、 图形化反编译apk

上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby

首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk





本文反编译工具包整理历史版本:

Android反编译工具包(升级)  (2012-10-10)

Android反编译工具 (2012-08-21)

android反编译工具 (2011-08-28)



本博客反编译方法,仅供参考学习使用,禁止用于非法和商业等用途,谢谢!


反编译androidapk及防止apk程序被反编译

原文出处 反编译AndroidAPK及防止APK程序被反编译怎么逆向工程对AndroidApk进行反编译googleAndroid开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译... 查看详情

androidapk反编译

android反编译工具包最新下载apktooldex2jarjd-gui工具功能apktool作用:资源文件获取,可以提取出图片文件和布局文件进行使用反编译命令:java-jarapktool.jardecodeapk文件路径dex2jar作用:将apk反编译成java源码(classes.de... 查看详情

androidapk反编译工具包

【前期准备】反编译需要以下工具: dex2jar   [官网、下载地址]jd-gui    [官网、下载地址]baksmali [官网、下载地址]smali     [官网、下载地址] 打包下载:点击下载前期条件:电脑必须有Java环境文件目录:... 查看详情

反编译修改androidapk的版本号

参考技术A准备工作完毕后,开始反编译apk。1.将你要反编译的apk放到apktoo.bat的同一文件夹下,然后cd到这个目录,执行以下命令:其中debug.apk为你要反编译的apk的名字,替换一下即可其中dst.apk为打包后生成的apk。其中debug.keystore... 查看详情

androidapk反编译得到java源代码(五)

APK软件反编译 去广告具体步骤:1.下载 apktool下载地址:https://code.google.com/p/android-apktool/downloads/list 2.通过apktool反编译apk。命令行中输入以下命令:apktool.bat  d  -f  aaa.apk(apk路径)反 查看详情

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

文章目录JADX介绍JADX安装JADX使用补充APK目录结构含义APK打包流程JADX介绍GitHub地址:https://github.com/skylot/jadxJADX支持将APK,dex,aar,zip中的dalvik字节码反编译为Java代码,也支持反编译AndroidManifest.xml和resources.arsc资源。JADX安装首... 查看详情

androidapk+dex文件反编译及回编译工具的使用说明

参考技术A本工具执行安装后,直接在【鼠标右键】生成快捷键,自动关联APK、DEX、Odex、Zip等文件。只要在电脑任意“非分区根目录”,【鼠标右键】点击相关文件,即可编译操作。如,反编译APK及DEX文件,反编译后生成可编译... 查看详情

反编译androidapk的具体步骤是怎样的

反编译步骤方法:一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar,将需要反编译的APK文件放到该目录下,打开命令行界面(运行-CMD)&nb... 查看详情

反编译androidapk的具体步骤是怎样的

1、配置好JAVA环境变量,下载:apktool解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)2打开命令提示符,(开始-运行-输入cmd)3输入:cd\apktool系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压... 查看详情

反编译一个android apk? [复制]

】反编译一个androidapk?[复制]【英文标题】:Decomplinganandroidapk?[duplicate]【发布时间】:2012-08-2821:00:54【问题描述】:可能重复:Android:GettingsourcecodefromanAPKfile是否有人可以反编译我的androidapk文件并查看我的包中声明的公共变量... 查看详情

跪求androidapk反编译详细教程,本人着实愚笨,看不懂网上滴步骤

一、更改apk文件的后缀名,如:LianyunHelper3.0.11.apk改成LianyunHelper3.0.11.zip二、用zip解压缩LianyunHelper3.0.11.zip文件三、从解压缩的文件夹中取出classes.dex文件并放到dex2jar.bat所在目录四、运行cmd命令,进入dex2jar.bat所在的目录,输入dex... 查看详情

什么是androidapk加固

...A混淆代码?签名以上两项保护自己的开发成果 参考技术Bandroidapk加固一般要达到以下效果:1、防逆向:通过DEX文件加壳以及DEX虚拟化等技术,防止代码被反编译和逆向分析。2、防篡改:通过校验APK开发者签名,防止被二次打包... 查看详情

Python 使用 ApkTool 和 Subprocess 反编译 APK

...】:2019-08-0220:50:09【问题描述】:我正在构建一个反编译AndroidAPK的Python应用程序进行一些修改并重新编译它。代码如下:fromshutilimportcopyfile#CopytheAPKtotheoutputdirectory. 查看详情

软件架构详解(附图)

软件架构(softwarearchitecture)软件架构(softwarearchitecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各... 查看详情

apk中java代码反编译

AndroidAPK中的Java代码可以被反编译到什么程度主要看APK的加密程度。第一种情况:无混淆无加密无加壳。直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。第二... 查看详情

如何对使用 ProGuard 混淆的 Android APK 进行逆向工程/反编译?

】如何对使用ProGuard混淆的AndroidAPK进行逆向工程/反编译?【英文标题】:Howtoreverse-engineer/decompileanAndroidAPKwhichwasobfuscatedusingProGuard?【发布时间】:2013-01-2503:50:45【问题描述】:很遗憾,我丢失了我使用ProGuard混淆的应用程序的源... 查看详情

android反编译植入代码(详解,手把手)

...家分享一下。大神可以直接飘过。)虽然说Android的反编译一直都不是什么神秘高深的技术,好久之前就已经搞过,但是闲着无聊,还是想来跟小伙伴们分享一下。一、工欲善其事必先利其器。   反编译apk包不可... 查看详情

androidapk打包流程

1,使用aapt编译资源文件,生成R.java和编译后的资源文件2,处理aidl文件,生成对应Java文件3,将上两步生成的Java文件和项目源代码一起编译生成class文件4,使用dex工具将第3步生成的class文件和引用的第三... 查看详情