`

Android APK的编译及反编译

 
阅读更多

一、前言:

大家好,今天给大家分享一下Android中的拿来主义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后的目录通常是这样的如下图:

当然res里的图片是可以拿来就用的(笔者的好多应用的图片都是从别人的apk里扣出来的),而诸如layout里的布局及权限文件 (AndroidManifest.xml)已经是一堆乱码了,完全看不懂,想看看别人是怎么布局的都不容易。还有源代码都被编译成了 classes.dex,完全看不出什么线索。基于以上的困惑,笔者给大家分享一下Android中的拿来主义。

二、所需工具(点击各自连接进入下载页面):

1.AXMLPrinter2.jar

2.baksmali.jar

3.smali.jar

三、准备工作

为了方便起见,作者把AXMLPrinter2.jar, 还有baksmali.jar,还有smali.jar(下下来为了方便重命名),放在Android SDK tools文件夹中如下图所示:

为了便于大家更容易程序比对,作者写了一个简单的应用(叫APKInstaller)目录结构如下图所示:

四、开始拿来主义

1.用 AXMLPrinter2.jar查看apk中的布局xml文件:

将ApkInstaller应用生成的ApkInstaller.apk(为了方便起见放到tools目录里)用WinRAR等工具打开,将res/layout/main.xml解压出来(也还是放在tools目录里哦)

打开main.xml文件,内容如下(一堆天文):

这时候AXMLPrinter2.jar派上用场了,打开cmd终端,一直进入到tools目录下,输入如下命令:

java -jar AXMLPrinter2.jar main.xml > main.txt.  (如下图所示)

打开main.txt代码如下(是不是有个123了呵呵~):

 

为了比对打开源程序中的main.xml代码如下(大家比对一下吧):

 

2.用baksmali.jar反编译classes.dex:

将ApkInstaller.apk里的classes.dex解压到tools目录里,然后baksmali.jar就派上用场了,在cmd命令行里输入如下命令:

java -jar baksmali.jar -o classout/ classes.dex .(如下图所示:)

你将会发现在tools里多一个classout文件夹里面(我代码的包目录结构清晰可见呀),如下图所示:

从上面看出除了Android本身资源的类R开头的,我的源程序里只有一个ApkInstaller.java,完全吻合,真TMD的猥琐呵呵~

下面我们看一下ApkInstaller.smali内容是什么,如以下代码:

 

 

同样为了比对我们看一下ApkInstaller.java的源代码如下:

 

 

 

我相信大家 已经能看出来门道来了吧,hoho~

 

3.用smali.jar编译classout成classes.dex:

我们上一步已经将classes.dex反编译成了.smali文件,好了,我们看看smali文件看够了,在偿试把它编译成classes.dex吧,

输入如下命令:java -jar smali.jar classout/ -o classes.dex. 如下图所示:

 

我们可以将新生成的classes.dex塞入ApkInstaller.apk里覆盖原来的classes.dex文件,这样我们的apk还是一样能用的哦~

 

Ok~今天就暂时写到这里,这片文章真是不容易呀,写了这么长时间,之间还出现过被来自武汉IP的人把这篇文章删除 过,我又重新写了一遍。希望大家多多进步!thx~

分享到:
评论

相关推荐

    android apk反编译工具集合

    本文将详细介绍四个常用的Android反编译工具:apktool、dex2jar、jdgui以及Smali2Java,它们在Android APK文件处理中的作用。 首先,我们来看`apktool`。Apktool是一款开源的Android APK反编译工具,由IzzySoft开发...

    Androidapk反编译之androidAPK有效加密方法.pdf

    Android APK 反编译之有效防止破解和反编译加密方法 Android APK 反编译是一种常见的安全威胁,许多 Android 开发者都存在这个问题。那麼有什么办法能防止 Android APK 反编译和破解呢?本文将对 Android APK 反...

    android apk 反编译工具包

    安卓apk反编译工具,android app反编译工具。用于学习

    Android apk反编译工具集

    本资源"Android apk反编译工具集"正是为这样的需求而准备的,它包含了几个关键的工具:Apktool、dex2jar以及jd-gui,这些都是Android反编译流程中的重要组成部分。 首先,Apktool是Android APK文件的解包和打包工具...

    Android apk 反编译

    Android APK反编译是一个复杂而重要的过程,它涉及到对Android应用程序的源代码进行逆向工程,以便理解其内部工作原理、提取资源或者进行修改。在Android应用开发中,APK文件是应用程序的打包形式,包含了所有的代码...

    Android反编译软件 安卓反编译 Android APK反编译详解

    在Android开发领域,有时我们需要对APK文件进行反编译以了解其内部结构、源代码逻辑或进行二次开发。本文将深入探讨Android反编译的相关知识,包括为什么要进行反编译,常用工具介绍,以及反编译过程的详细步骤。 ...

    安卓android apk 反编译步骤

    安卓Android APK反编译是开发者或逆向工程师为了查看、分析或修改APK内部代码和资源的一种技术。以下是一个详细的步骤,帮助你理解如何进行这个过程: 1. **准备工作**:首先,你需要下载两个关键工具,分别是`dex2...

    Android APK反编译文件

    本文将深入探讨“Android APK反编译文件”这一主题,包括如何进行反编译,以及反编译过程中的关键知识点。 首先,让我们了解什么是APK反编译。APK反编译是将已编译的APK文件转换回其源代码形式,以便分析和理解其...

    Android反编译APK查看

    在Android开发领域,有时我们需要对已有的APK应用进行反编译来查看其源代码、资源文件或了解其工作原理。这通常是出于学习、调试、安全分析或逆向工程的目的。本文将详细介绍如何使用名为JD-GUI的工具来实现Android ...

    Android apk反编译工具

    Apk反编译工具包括了apktool、dex2jar和jd-gui三个工具,apktool用于apk反编译获取资源文件等,dex2jar用于分析classes.dex文件,jd-gui可以用于打开dex2jar分析生成的classes-dex2jar.jar文件从而查看源代码。

    Android APK反编译工具反编译工具包

    这个“Android APK反编译工具反编译工具包”就是为了这些目的而准备的。它包含了三个核心工具:apktool、dex2jar和jd-gui,这些都是Android反编译流程中的关键组件。 首先,`apktool`是一个开源工具,用于解包和...

    androidAPK反编译工具32/64

    "androidAPK反编译工具32/64"提供了解决这一需求的工具,它包括了32位和64位版本,适应不同的操作系统环境。 首先,让我们来了解一下APK反编译的基本概念。反编译是将已编译的二进制代码转换回源代码的过程。对于...

    Android APK反编译工具,用于反编译APK

    Android APK反编译工具,用于反编译APK 反编译zip包使用: 1. 解压zip包 2. cmd进入到文件夹目录 3. 将要反编译的Apk拷贝到该目录下 4. 输入命令>winhackapk.bat xx.apk outfolder

    Android APK反编译三件套,ApkTool、dex2jar、ju-gui,完美可用

    然而,由于Android应用的APK文件本质上是可被解压和分析的ZIP格式,因此APK的反编译成为了开发者和安全研究人员关注的领域。本文将详细介绍Android APK反编译的三个核心工具:ApkTool、dex2jar以及JD-GUI,并探讨...

    Android APK 反编译软件

    本文将深入探讨Android APK反编译的原理、工具和相关知识点。 首先,我们需要理解APK文件的结构。APK包含资源文件(如图片、布局XML)、Java字节码(Dalvik Executable, .dex文件)、AndroidManifest.xml(应用配置...

    android apk反编译

    "Android APK反编译"是一个针对APK文件进行逆向工程的过程,旨在揭示其内部工作原理,理解代码逻辑,或者进行二次开发。这个过程通常用于安全分析、漏洞挖掘、学习和调试。下面我们将深入探讨APK反编译的相关知识点...

    android反编译工具(dex2jar,apk2java)

    本文将详细介绍两款常用的Android反编译工具——dex2jar和apk2java,以及如何利用它们获取APK中的Java源代码和资源文件。 一、dex2jar dex2jar是一款将Dalvik字节码(.dex)转换为Java字节码(.jar)的工具。...

    Android Apk反编译工具

    本文将详细介绍如何使用Android Apk反编译工具,包括dex2jar、jd-gui、apktool以及Androidfby,来实现这一目标。 首先,我们要了解的是dex文件。在Android系统中,Dalvik虚拟机执行的是.dex格式的字节码。当我们...

    Android APK反编译工具合集

    Android反编译工具合集,APK反编译工具合集 apktool dex2jar jd-gui,全是开源项目下载,工具无一漏,百分百实用,Android必备。 啥,不会用? 百度,Google教你~~~

Global site tag (gtag.js) - Google Analytics