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=

  • 相关阅读:
    使用 libevent 和 libev 提高网络应用性能
    An existing connection was forcibly closed by the remote host
    各种浏览器的兼容css
    vs输出窗口,显示build的时间
    sass
    网站设置404错误页
    List of content management systems
    css footer not displaying at the bottom of the page
    强制刷新css
    sp_executesql invalid object name
  • 原文地址:https://www.cnblogs.com/spinsoft/p/3719978.html
Copyright © 2011-2022 走看看