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. SDUT 2933-人活着系列Streetlights(最小生成树Kruskal+和理查德设置来实现)

    人活着系列之Streetlights Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 人活着假设是为了家庭,亲情----能够说 ...

  2. java流的性能优化1-文件复制

    传统的I/O速度相对照较慢,它会成为系统性能的瓶颈,所以在java1.4之后提供了NIO,它是一种全新的流:它具有下面特性: 1.为全部的原是类型提供Buffer缓存支持: 2.使用java.nio. ...

  3. php方法综述除去换行符(PHP_EOL使用变量)

    一个小包裹,事实上,不同的平台具有不同的实现.为什么要这样.它可以是一个世界是多样的. 最初unix与世界把它包/n取代,但windows为了体现自己的不同.要使用/r/n,更有意思的是,mac随着/ ...

  4. [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use &#39;track by&#39; expression to specify uniq

    angularjs 使用ng-repeat报错 <div ng-init="words = ['高校','高校','高校']" ng-repeat="word in ...

  5. HDU 4832(DP+计数问题)

    HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行,竖用几行.然后相乘累加起来就是答案 代码: #include <stdio.h> #include < ...

  6. jqm的多列布局demo,html5的多列布局demo,多列布局的具体解说,html5开发实例具体解释

    因为移动设备屏幕宽度较小,所以一般不建议使用多列布局.但有时你可能须要并排放置一些元素(如button之类的). jQuery Mobile通过约定的类名ui-grid来提供了一种基于css的多列布局 ...

  7. 【C++知识汇总】运营商 &amp; 运算符重载

    [运算符]        在进行运算时,假设右括号的话我们知道先运算哪个,那假设没有括号了.算术运算符,关系运算符,逻辑运算符,位运算符.赋值运算符,++.--运算符等等,那么多的运算符.我们先算哪边 ...

  8. HTML5中类jQuery选择器querySelector的高级使用 document.querySelectorAll.bind(document);

    基本用法 querySelector 该方法返回满足条件的单个元素.按照深度优先和先序遍历的原则使用参数提供的CSS选择器在DOM进行查找,返回第一个满足条件的元素. ----> querySe ...

  9. 他们控制的定义-DragButton

    一个.叙述性说明 可拖动Button 两.无图无真相 这是用在实际工程效果图.和demo不太一样. 三.源代码 https://github.com/mentor811/Demo_DragButton ...

  10. poj3414--Pots(bfs,记录路径)

    Pots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10149   Accepted: 4275   Special J ...