美文网首页
Apk的反编译

Apk的反编译

作者: Silver_Lee | 来源:发表于2016-09-27 14:13 被阅读128次

参考自Android APK反编译就这么简单 详解(附图)

准备工具

  • apktool(获取资源)
  • dex2jar(获取源码)
  • jd-gui(查看源码)

流程

一、获取资源(代码,图片,XML文件等)
  1. 解压apktool,得到三个文件:apktool.jarapktool.bataapt.exe
  2. 将需要反编译的apk放到刚才解压的文件夹下
  3. 打开命令行,定位到刚才的文件夹,执行

apktool.bat d -f [apk文件] -o [输出文件夹]
例:apktool.bat d -f test.apk -o test

如下画面即执行成功


apktool_command
  1. 反编译成功后找到上面的输出文件夹,这里面就是该apk下的资源了
二、获取源码
  1. 解压dex2jar,得到一个同名的文件夹dex2jar。解压jd-gui,得到jd-gui.exe
  2. 将需要反编译的apk文件后缀改为rar或zip等可解压的格式并解压出来,从中找到一个classes.dex文件,将它放入上面的dex2jar文件夹中
  3. 命令行定位到dex2jar文件夹,执行

dex2jar.bat classes.dex

下图即执行成功


dex2jar_command.png
  1. 执行成功后会在该目录下生成一个classes_dex2jar.jar文件,通过刚才解压得到的jd-gui.exe文件打开即可看到源码了
    效果图
    被混淆后的apk
    混淆后的效果图

注意

  1. apktool解压之后的apktool.jar需要是最新的,否则将会打印以下错误信息
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
        at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
        at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
        at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
        at brut.androlib.Androlib.getResTable(Androlib.java:50)
        at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
        at brut.apktool.Main.cmdDecode(Main.java:146)
        at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
        at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
        at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
        at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
        at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
        ... 8 more

相关文章

  • 反编译Android APK及防止APK程序被反编译

    反编译Android APK及防止APK程序被反编译 怎么逆向工程对Android Apk 进行反编译 googl...

  • Apk反编译

    APK反编译流程 对我们来说,apk 就是一个压缩包 。反编译 apk 就是反编译 dalvik(Dalvik 是...

  • APK反编译工具的使用

    前言 处理反编译,首先先要了解apk文件的结构,然后是编译过程,最后是反编译。反编译Apk的目的就是Apk拆成我们...

  • Android 反编译

    1、反编译工具 APK TOOL :谷歌提供的 APK 编译工具,可以反编译和回编译。我们都知道,其实 APK 就...

  • 反编译apk

    反编译apk

  • 反编译apk,修改登录成功

    要实现的功能是,登录成功。 打开Apk反编译工具,将上一篇中生成的apk拖入其中,点击 反编译apk。 将apk使...

  • Android smali动态调试

    调试步骤 反编译apk 使用apktool工具反编译apk 在AndroidManifest.xml里面的Appl...

  • Mac下反编译Android安装包基本工具

    本篇文章主要从如下几点学习反编译工具的基本安装 apk介绍 反编译apk需要的基本工具 常用ADB命令 apk介绍...

  • 2020-06-20 反编译APK获取代码&资源

    "反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取...

  • android 动态调试

    反编译以及打包 apk 工具网盘地址 反编译 :java -jar Apktool.jar d 22.apk 修改...

网友评论

      本文标题:Apk的反编译

      本文链接:https://www.haomeiwen.com/subject/kgucyttx.html