做安卓逆向免不了要遇到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文件的反编译相关推荐

  1. .odex文件的反编译

    0x00 问题呈现 在分析某手机自带应用时,为了在JEB中反编译,将其adb pull到了电脑上.解压后发现如下文件: APK解压目录列表 惊奇的发现该APK包中没有dex文件,一开始特别疑惑没有de ...

  2. 安卓apk修改(Android反编译apk)

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程.APK修改,分为以下几步:反编译解包,修 ...

  3. 【apk破解尝试之旅】-——apk文件的反编译与回编译

    前段时间玩了个手游,中途碰到一个副本迟迟无法攻破,又不没钱氪金,想着弄个破解版的,搜了半天没找到,于是决定自己动手干! 首先要对apk有个初步的了解,..apk文件是一种压缩文件,网上有种说法:apk ...

  4. Java的class文件批量反编译成Java文件

    Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...

  5. jar包、class文件批量反编译并解压

    jar包.class文件批量反编译并解压 该脚本可以在一个java工程目录下自动搜寻jar包.class文件,并在同级目录下创建一个新的文件夹来保存反编译和解压结果. 使用反编译插件为fernflow ...

  6. 游走Android系列之APK文件的反编译、修改和重新编译打包

    Android apk反编译.重新编译和签名 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,再将.class处理 ...

  7. 如何修改apk文件,反编译(转)

    APK文件的解包打包和修改 相信每位玩机的人对APK文件都不陌生.你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具.插件.好玩的游戏等等...你可曾知道这些每天都伴随着你的APK文件是什 ...

  8. 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 ...

  9. Apk文件破解反编译(转)

    首先我们了解下什么是apk APK是AndroidPackage的缩写,即Android安装包(apk).APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android ...

最新文章

  1. Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.解决方案
  2. Winform/WPF实例中的相互操作
  3. 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
  4. 安装中文版man手册,同时保留原英文版手册
  5. CS224n笔记一:开端
  6. linux终端友好,Linux 中一种友好的 find 替代工具
  7. matlab仿真二元等幅边射阵,MATLAB仿真天线阵代码.doc
  8. 使用 Apache JMeter™工具进行性能测试
  9. BootStrap_04之jQuery插件(导航、轮播)、以及Less
  10. 算法交流:分享我的一个算法,实现项目需求
  11. Rust:字符串数组的拼接、与 String 、 str的选择
  12. weblogic解析web.xml问题
  13. ps怎么导入lut预设?Photoshop导入lut调色预设教程
  14. 使用Kettle读取Excel文件中的数据,存储在MySQL中
  15. Android事件分发机制
  16. XXS靶场haozi
  17. 二、VSCode——MiKTeX编写latex编码
  18. 2021年美国大学生数学建模竞赛C题参考翻译
  19. 不同尺寸的手机屏幕其需要图片的分辨率和尺寸
  20. TCP粘包,拆包及解决方法、丢包的原因及解决办法

热门文章

  1. sb版 java后端(spring boot)应用Conflux Java SDK尝试交互Conflux实录
  2. 《全球顶尖公司的领导力实践》——读书随笔
  3. 百度未命名算法将执行,打击SEO收割
  4. 常见的室内人员定位及时之一,ZigBee定位-新导智能
  5. cass有坐标文件生成里程文件_CASS里程文件生成
  6. CSS水平垂直居中常见方法总结
  7. 弹塑性力学--应变硬化
  8. 运维常见命令(三)-不解压查看bz2日志文件
  9. [hadoop3.x]HDFS存储类型和存储策略(五)概述
  10. 毕业4年年薪200万,一个CTO的成长之路