zoukankan      html  css  js  c++  java
  • android 反编译(dex 和 odex),非脑残转帖,绝对可靠

    Android 反编译

    反编译odex文件(比如framework.odex),若是反编译dex,直接第4步

    1.因为反编译odex的工具在D:Develop toolsandroid反编译工具odex中,因此为了运行命令方便一点在odex目录里面,将system的目录结构给新建一下,将反编译的odex中所引用的全部包都放到相应的目录下
    system-----
         |-------app
         |-------framework

    2.java -jar baksmali-2.0.3.jar -d ./system/framework -x ./system/framework/framework.odex
    -d      指定bootclasspath dir
    -x      deodex the given odex file. This option is ignored if the input file is not an odex file
    -a      --api-level <API_LEVEL>,The numeric api-level of the file being disassembled. If not specified, it defaults to 15 (ICS).
             网上非常多人转那个帖子都写的是-a 12, 不是必需

    3.运行完上面的命令后就会在odex目录下生成一个out目录,里面就是层次结构了,注意:在运行上面命令之前看一下之前有木有out目录,有旧的out目录的话,可能导致以下要运行的命令抛出异常,因此要将旧的out目录删除,异常例如以下:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    org.jf.util.ExceptionWithContext: Unsigned short value out of range: 78281
            at org.jf.dexlib2.writer.DexDataWriter.writeUshort(DexDataWriter.java:11
    6)
            at org.jf.dexlib2.writer.InstructionWriter.write(InstructionWriter.java:
    312)
            at org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:980)
            at org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java
    :759)
            at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:214)
            at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:192)
            at org.jf.smali.main.main(main.java:229)
    最后将转为classes.dex的命令:java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex

    4.最后一步就是讲classes.dex反编译为jar文件了,用d2j-dex2jar命令:d2j-dex2jar -f classes.dex

  • 相关阅读:
    Delphi 2005 以上版本GIF动画播放设置
    WIN7中盾牌的编程-DELPHI
    Delphi中ComPort通信中的数据处理
    【ZJOI2008】树的统计(树链剖分)
    【CJOJ2440】大话西游(树链剖分)
    【洛谷3384】【模板】树链剖分
    【NOI2004】郁闷的出纳员(splay)
    【HNOI2004】宠物收养所(splay)
    【HNOI 2002 】营业额统计(splay)
    【Tyvj 1728】普通平衡树
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4271926.html
Copyright © 2011-2022 走看看