安卓.odex文件的反编译
做安卓逆向免不了要遇到odex后缀的文件反编译。目前还没有一键反编译的方法。我下面讲述我本次反编译的步骤,以供参考交流。
本次目标文件是个空调控制的APP,文件名是AirConditioning,打开文件,有一个AirConditioning.apk文件和一个目录(oat\arm64\AirConditioning.odex)。
odex后缀的文件时什么?
其实odex后缀文件就是APK文件中的dex文件被odex化所得,该处理方式有以下好处:
1.odex是从apk文件中提取出classes.dex文件,并通过优化生成一个可运行的文件单独存放。
2.应用保护,一般情况下有odex的应用,其对应的apk文件中只存留资源文件,或者破损的dex文件,这样在反编译的情况下得不到正确的应用数据,同时也无法安装使用。
我对.odex后缀得文件很感兴趣。期望逆向出可读得代码。
工具准备:
smali baksmali smali-2.5.2.jar baksmali-2.5.2.jar 四个文件下载
下载地址:
JesusFreke / smali / Downloads — Bitbucket
dex2jar工具下载
dex2jar download | SourceForge.net
jd-gui工具下载
Java Decompiler
逆向步骤:
步骤一:通过baksmali工具将odex反汇编成smali文件工程。
cmd进入baksmali所在目录
执行命令
java -jar baksmali-2.5.2.jar x D:\*********\*.odex
有报错,报错信息得意思是缺少boot.oat文件,那么便从system\framework\arm64 目录下找到了一大堆boot.oat文件,不要犹豫,将system\framework\arm64下面所有文件全部拷贝到*.odex所在同级目录下。
重新执行命令
执行成功,生成了一个out目录,检查里面都是是smail后缀。OK,我们成功获得了smali文件。
步骤二:通过smali工具将smali工程文件编译成dex文件。
cmd进入smali所在目录,一般我们把baksmali smali放在同一目录。
执行命令
java -jar smali-2.5.2.jar ass -o classes.dex out
命令执行成功,看到生成了classes.dex文件。
步骤三:通过dex2jar工具将dex工程文件编译成jar文件。
cmd进入dex2jar所在目录
执行命令
d2j-dex2jar.bat classes.dex
命令执行成功,看到了生成了classes-dex2jar.jar文件。
步骤四:通过jd-gui工具打开jar文件。
双击打开jd-gui.exe
将classes-dex2jar.jar文件拖进去。
OK,大功告成!
安卓.odex文件的反编译相关推荐
- .odex文件的反编译
0x00 问题呈现 在分析某手机自带应用时,为了在JEB中反编译,将其adb pull到了电脑上.解压后发现如下文件: APK解压目录列表 惊奇的发现该APK包中没有dex文件,一开始特别疑惑没有de ...
- 安卓apk修改(Android反编译apk)
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程.APK修改,分为以下几步:反编译解包,修 ...
- 【apk破解尝试之旅】-——apk文件的反编译与回编译
前段时间玩了个手游,中途碰到一个副本迟迟无法攻破,又不没钱氪金,想着弄个破解版的,搜了半天没找到,于是决定自己动手干! 首先要对apk有个初步的了解,..apk文件是一种压缩文件,网上有种说法:apk ...
- Java的class文件批量反编译成Java文件
Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...
- jar包、class文件批量反编译并解压
jar包.class文件批量反编译并解压 该脚本可以在一个java工程目录下自动搜寻jar包.class文件,并在同级目录下创建一个新的文件夹来保存反编译和解压结果. 使用反编译插件为fernflow ...
- 游走Android系列之APK文件的反编译、修改和重新编译打包
Android apk反编译.重新编译和签名 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,再将.class处理 ...
- 如何修改apk文件,反编译(转)
APK文件的解包打包和修改 相信每位玩机的人对APK文件都不陌生.你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具.插件.好玩的游戏等等...你可曾知道这些每天都伴随着你的APK文件是什 ...
- linux apk 拆分 odex,android apk反编译和odex转dex-Go语言中文社区
http://www.cnblogs.com/wanqieddy/archive/2012/03/01/2375424.html 大家好,这里介绍apk反编译操作. 1:apk反编译 2:odex转d ...
- Apk文件破解反编译(转)
首先我们了解下什么是apk APK是AndroidPackage的缩写,即Android安装包(apk).APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android ...
最新文章
- Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.解决方案
- Winform/WPF实例中的相互操作
- 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
- 安装中文版man手册,同时保留原英文版手册
- CS224n笔记一:开端
- linux终端友好,Linux 中一种友好的 find 替代工具
- matlab仿真二元等幅边射阵,MATLAB仿真天线阵代码.doc
- 使用 Apache JMeter™工具进行性能测试
- BootStrap_04之jQuery插件(导航、轮播)、以及Less
- 算法交流:分享我的一个算法,实现项目需求
- Rust:字符串数组的拼接、与 String 、 str的选择
- weblogic解析web.xml问题
- ps怎么导入lut预设?Photoshop导入lut调色预设教程
- 使用Kettle读取Excel文件中的数据,存储在MySQL中
- Android事件分发机制
- XXS靶场haozi
- 二、VSCode——MiKTeX编写latex编码
- 2021年美国大学生数学建模竞赛C题参考翻译
- 不同尺寸的手机屏幕其需要图片的分辨率和尺寸
- TCP粘包,拆包及解决方法、丢包的原因及解决办法
热门文章
- sb版 java后端(spring boot)应用Conflux Java SDK尝试交互Conflux实录
- 《全球顶尖公司的领导力实践》——读书随笔
- 百度未命名算法将执行,打击SEO收割
- 常见的室内人员定位及时之一,ZigBee定位-新导智能
- cass有坐标文件生成里程文件_CASS里程文件生成
- CSS水平垂直居中常见方法总结
- 弹塑性力学--应变硬化
- 运维常见命令(三)-不解压查看bz2日志文件
- [hadoop3.x]HDFS存储类型和存储策略(五)概述
- 毕业4年年薪200万,一个CTO的成长之路