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. Oracle得知(十五):分布式数据库

    --分布式数据库的独立性:分布数据的独立性指用户不必关心数据怎样切割和存储,仅仅需关心他须要什么数据. --本地操作 SQL> sqlplus scott/tiger --远程操作 SQL> ...

  2. 未能加载文件或程序集“Common”或它的某一个依赖项。试图加载格式不正确的程序

    原因:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题解决方案一:如果是64位机器,IIS——应用程序池——高级设置——启用32位应用程序 :true.解决方案二:修改 ...

  3. uav 11258 String Partition (DP)

    Problem F - String Partition                                                                         ...

  4. 【Flume】flume于transactionCapacity和batchSize进行详细的分析和质疑的概念

    我不知道你用flume读者熟悉无论这两个概念 一开始我是有点困惑,? 没感觉到transactionCapacity的作用啊? batchSize又是干啥的啊? -- -- 带着这些问题,我们深入源代 ...

  5. sdut 上机练习8面向对象编程(对象的数组)

    上机练习8面向对象编程(对象的数组) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 利用类对象数组完毕N个学生数据(学号是字符串类型.成绩是整型)的输入 ...

  6. linux如果不进入window磁盘

    最近,在windows8.1下安装ubuntu14.04,在windows沉睡.开放时间和进入选择进入系统选项,当时没有引起重视.他选择进入linux系统.但进入后,发现无法进入windows磁盘,百 ...

  7. Android中部署自己的su

    本人博客原文 首先把你的自己的su的放到Android应用程序project的assets文件夹,为了和系统的su区分,我自己的su文件叫做sur. 另外我这里没有考虑x86架构的cpu的手机. 废话 ...

  8. Shark集群搭建配置

    一.Shark简单介绍 Shark是基于Spark与Hive之上的一种SQL查询引擎,官网的架构图及性能測试图例如以下:(Ps:本人也做了一个性能測试见Shark性能測试报告) 我们涉及到了2个依赖组 ...

  9. 使用 Advanced Installer 打包 一键安装Web应用程序

    原文:使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和 ...

  10. 2g-3g