zoukankan      html  css  js  c++  java
  • Android反编译工具介绍与简单实用方法

    Android反编译的目的无非就是为了看到APK的xml、资源和代码:

      得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码

         得到XML的方式:

        方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方式查看的XML文件的id都是数字--即R文件中id对应的值)

               方式2:使用APKTool工具解压APK文件可以直接查看XML文件

    Android反编译常常使用如下的一些工具:

    1、反编译命令:  

      apktool d D:\DeveloperandroidDecodeTest0201.apk D:\DeveloperandroidDecode est0201  

        D:\DeveloperandroidDecodeTest0201.apk:要反编译的APK文件

        D:\DeveloperandroidDecode est0201:反编译文件的保存目录,必须为空目录

    2、从反编译的文件编译成APK  apktool b D:\DeveloperandroidDecode est0201 D:\DeveloperandroidDecode est020101.apk

       D:\DeveloperandroidDecode est0201:保存编译后文件的目录  

      D:\DeveloperandroidDecode est020101.apk:生成的新的APK文件的保存的绝对路径

    3、签名APK文件:  

      singedAPK.bat文件  

        java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk  

      执行singedAPK.bat命令  

        singedAPK D:\DeveloperandroidDecode est020101.apk  生成一个singed.apk文件和test020101.apk在同一个目录

    4、使用baksmali.jar把一个dex文件转换为一个smali文件  

        java -jar D:\DeveloperApkToolaksmali.jar -o D:\DeveloperandroidDecodeaksmaliout D:\DeveloperandroidDecodeHello.dex  

          D:\DeveloperApkToolaksmali.jar:baksmali.jar文件所存在的全路径  

          D:\DeveloperandroidDecodeaksmaliout:生成的smali文件的保存目录  

          D:\DeveloperandroidDecodeHello.dex:要转成smali文件的路径

    5、使用ddx.jar把一个dex文件转换为ddx文件  

        java -jar D:\DeveloperApkToolddx.jar -d D:\DeveloperandroidDecodeddxout D:\DeveloperandroidDecodeHello.dex  

          D:\DeveloperApkToolddx.jar:ddx.jar文件的绝对路径  

          D:\DeveloperandroidDecodeddxout:要保存ddx文件的路径  

          D:\DeveloperandroidDecodeHello.dex:要转换的dex路径

    6、Android自带dexdump工具:dex文件转为smali文件  dexdump -d xxxx.dex > xxxx.smali

    7、dex2jar.jar:dex2jar XXX.dex YYY.jar

    说明:

      apktool项目地址:https://code.google.com/p/android-apktool/

      baksmali项目地址:https://code.google.com/p/smali/

          dex2jar项目地址:https://code.google.com/p/dex2jar/downloads/list

          java Decompiler(JD)项目地址:http://jd.benow.ca/

      XJAD百度网盘下载地址:http://pan.baidu.com/share/link?shareid=406366626&uk=3558809438&fid=881236853

      axmlprinter项目地址:https://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=

  • 相关阅读:
    线程池问题
    高级I/O
    闹钟设计
    线程竞争问题
    线程基本函数
    SpringMvc支持跨域访问
    gitlab qq邮件配置
    gitlab断电
    docker run always
    电子书网
  • 原文地址:https://www.cnblogs.com/xinye/p/3719807.html
Copyright © 2011-2022 走看看