android反编译odex文件
关于android的反编译工具,相信大家并不陌生
如APK-TOOL,dex2jar
APK-TOOL 用于反编译出布局文件
下载地址http://code.google.com/p/android-apktool/downloads/list

dex2jar 用于将dex反编译成.jar包
下载地址:http://code.google.com/p/dex2jar/downloads/list

生成的jar包可用jd-gui来查看(前提是代码未被混淆)
可是假设我们从rom里面提取出的apk是不能反编译出源代码
由于android系统为了加快内置应用的启动时间,会将dex从apk中提取出来优化成odex(二者都是可运行文件)
所以这就须要我们先将odex转化为dex再进行反编译
这就须要用到下面四个文件:
下载地址:http://code.google.com/p/smali/downloads/list

只是在反编译odex的时候光有源文件还不够,还须要依赖rom里面framework下的odex。详细依赖程度视情况而定,最简单的方式就是将framework下的odex所有copy过来就可以
以下以红米rom为例,反编译Phone资源
如图示:

system\framework下放置好所依赖的odex文件
输入java -jar baksmali-2.0.3.jar -d ./system/framework -x Phone.dex
正常会生成out目录
再输入java -jar smali-2.0.3.jar out/ -o classes.dex
打包生成的class.dex就是我们要的东西了
以下附上測试用的资源文件
http://download.csdn.net/detail/geniuseoe2012/7352757

心动不如行动,赶紧来尝试一把吧!

android反编译odex文件的更多相关文章
- Android反编译odex然后重新打包
#Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...
- android 反编译(dex 和 odex),非脑残转帖,绝对可靠
Android 反编译 反编译odex文件(比如framework.odex),若是反编译dex,直接第4步 1.因为反编译odex的工具在D:\Develop tools\android反编译工具\ ...
- Android反编译(二)之反编译XML资源文件
Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具 apktool http ...
- Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...
- Android开发学习之反编译APK文件
反编译的目的在于学习一些优秀的Android应用程序代码. 在进行反编译之前,需要准备好下面的软件工具(这些文件都放在同一文件下): 这些工具的下载地址:http://down.51cto.com/d ...
- Android 反编译Apk提取XML文件
Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...
- Android apktool反编译资源文件为空解决办法(测试天猫、淘宝等apk成功)
1 Exception in thread main brut.androlib.androlibexception multiple resources 解决办法:下载最新的apktool,在goo ...
- Android 反编译技术流程
为何需要反编译 作为一名Android开发者,很多的时候需要去学习别人优秀的代码,原本在GitHub上就有很多开源的项目代码,但有的时候在使用软件时候遇到自己想要的功能时,想要学习实现的代码时,这时候 ...
- Android反编译(三)之重签名
Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...
随机推荐
- JS学习笔记-数据类型
最初的JS学习已经过去大半年的时间了,至此感觉对JS的使用与理解并非非常深入,因此在近期的工作之余也開始了新一轮的JS学习. 几天时间过去了,对于一些基础内容的学习还是非常有必要的,就从今天的又一次整 ...
- 大话html5应用与app应用优缺点
在这个app横飞的年代,对于整个产品研发团队来讲,高速的迭代,爆炸式的功能追加已经成为了互联网行业的时代标签,以小时甚至分钟为单位的进度度量成为了常态.在这个市场大环境下,浪里淘沙的不单单是商业模式. ...
- nodejs是什么
nodejs是什么 一种javascript的运行环境,能够使得javascript脱离浏览器运行. 阅读本帖需要先复习小学语文课文,华罗庚的<统筹方法>. 比如,想泡壶茶喝.当时的情况是 ...
- Dictionaries
A dictionary is like a list, but more general. In a list, the indices have to be integers; in a dict ...
- java9新特性-15-全新的HTTP 客户端API
1.官方Feature 110: HTTP 2 Client 2.使用说明 HTTP,用于传输网页的协议,早在1997年就被采用在目前的1.1版本中.直到2015年,HTTP2才成为标准. H ...
- PostgreSQL Replication之第七章 理解Linux高可用(5)
7.5 高可用性是所有冗余 让我们从一个不同的角度看一下前面的混合超市的例子.为了处理大量顾客无需长排队,无需关闭超市,混合超市雇用更多的出纳员以及安装许多(甚至更多)的收银机. 这样,如果一个收银机 ...
- 关于linq使用建议
1.由于目前我做的项目使用的是SocanCode工具生成的三层框架,于是乎对于一些基本数据类型采用了可空类型编程 public CountryCode(int? id, string en_name, ...
- MFC 创建新项目
本文主要介绍如何是使用vc++创建MFC项目,并简单介绍整个项目的基本框架.文件–>新建,会弹出以下新建文件(项目)类型的界面,如下 按上图的步骤u,创建一个MFC工程.其中步骤3中的CardD ...
- UVa 140 Bandwidth【枚举排列】
题意:给出n个节点的图,和一个节点的排列,定义节点i的带宽b[i]为i和其相邻节点在排列中的最远的距离,所有的b[i]的最大值为这个图的带宽,给一个图,求出带宽最小的节点排列 看的紫书,紫书上说得很详 ...
- ORM原理
原理: 1.实现JavaBean的属性到数据库表的字段的映射: --通过配置文件将JavaBean的属性与数据库表的字段的关联起来 2.映射关系: 一对多,多对一等 持久层(Pers ...