Android 反编译


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

1.因为反编译odex的工具在D:\Develop tools\android反编译工具\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

android 反编译(dex 和 odex),非脑残转帖,绝对可靠的更多相关文章

  1. Android反编译odex然后重新打包

    #Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...

  2. Android 反编译

    Android 反编译 步骤:1.下载apktool 工具,这一步 主要是反编译 xml 文件. 步骤:2 把xx.smali 文件转为java 工具 (单个) 图形界面 下载dex2jar  和xj ...

  3. Android 反编译技术流程

    为何需要反编译 作为一名Android开发者,很多的时候需要去学习别人优秀的代码,原本在GitHub上就有很多开源的项目代码,但有的时候在使用软件时候遇到自己想要的功能时,想要学习实现的代码时,这时候 ...

  4. Android反编译(三)之重签名

    Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...

  5. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  6. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

  7. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  8. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

  9. Android 反编译工具简介

    Android 反编译工具: 所需工具:1 apktool : 用于获取资源文件 2 dex2Jar : 用于将classes.dex转化成jar文件 2 jd-gui: 将jar文件转化成java文 ...

随机推荐

  1. axWindowsMediaPlayer1获取音频长度

    OpenFileDialog openFileDialog1 = new OpenFileDialog { InitialDirectory = "c:\\", Filter = ...

  2. String构造函数originalValue.length&gt;size 它发生

    最近观看Jdk6于String源代码被发现String这种施工方法有.源内容如下面: public String(String original) { int size = original.coun ...

  3. 与我一起extjs5(04--MVVM简要说明财产)

    与我一起extjs5(04--MVVM简要说明财产)         以下我们来看一下自己主动生成的代码中的MVVM架构的关系. Main是一个可视的控件,MainController是这个控件的控制 ...

  4. 创建在SQLServer 和 Oracle的 DBLINK

    dblink 当我们要跨本地数据库.訪问另外一个数据库表中的数据时,本地数据库中就必需要创建远程数据库的dblink,通过dblink本地数据库能够像訪问本地数据库一样訪问远程数据库表中的数据. 一 ...

  5. What is Observer and Observable and when we used these?

    转会:http://stackoverflow.com/questions/13744450/interview-when-do-we-use-observer-and-observable

  6. 如何track存储过程的编译次数

    原文:如何track存储过程的编译次数 转载自此处 有个script我们很熟悉,是用来去查找当前SQL Server中哪些存储过程变重编译的次数最多的: --Gives you the top 25 ...

  7. 【甘道夫】HBase连接池 -- HTablePool是Deprecated之后

    说明: 近期两天在调研HBase的连接池,有了一些收获,特此记录下来. 本文先将官方文档(http://hbase.apache.org/book.html)9.3.1.1节翻译,方便大家阅读,然后查 ...

  8. 必须掌握的八个cmd命令

    原文:必须掌握的八个cmd命令 一.ping 它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的 ...

  9. struts2-dojo-plugin-2.3.1.2.jar!/struts-plugin.xml:29:119

    Unable to load configuration. - bean - jar:file:/D:/code_workspace/SSHWorkSpace3/.metadata/.plugins/ ...

  10. linux 字符界面浏览器 w3m(转)

    最近找到了几个linux终端下使用的浏览器,主要用来测试本机web服务器是否搭建成功.因为我们一般是用ssh客户端连接linux的,所以很需要一个字符界面的浏览器.找了几个显示都不理想,只有w3m用起 ...