APK文件与odex文件反编译
来源:互联网 发布:java方法的声明 编辑:程序博客网 时间:2024/05/17 22:47
apk反编译:
首先将apk文件后缀改为zip并解压,得到其中的classes.dex
第二类:
按照第一类没有得到classes.dex文件;获取apk文件和odex文件;
1.首先配java环境,下载所需工具smali-1.3.3.jar 和 baksmali-1.3.3.jar;
2.将手机/system/framework 里面也一并复制出来放在与两个工具同一目录(即与smali-1.3.3.jar、baksmali-1.3.3.jar);
注意:framework下的只要.odex文件,不需要jar和apk文件;
3.将要反编译应用的apk文件和.odex文件放在与smali-1.3.3.jar、baksmali-1.3.3.jar同一目录;
4.开始运行分解 odex 文件为 classes.dex 文件的命令:
A.java -jar baksmali-1.3.3.jar -x **.odex 注:**即要反编译的应用文件名;
此命令完成之后,会生成一个 out 文件夹在smali-1.3.3.jar、baksmali-1.3.3.jar同一目录下,里面就是所有的 class文件,后缀名为.smali;
B.运行 class 生成为 classes.dex 文件的命令:
java -Xmx512M -jar smali-1.3.3.jar out -o classes.dex
此命令完成之后,会生成classes.dex文件在smali-1.3.3.jar、baksmali-1.3.3.jar同一目录下;
执行A命令后可能出现的错误日志:
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Util.ExceptionWithContext: Cannot locate boot class path file core.odex
at org.jf.dexlib.Code.Analysis.ClassPath.loadBootClassPath(ClassPath.java:237)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:145)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(ClassPath.java:110)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:104)
at org.jf.baksmali.main.main(main.java:297)
此错误为/system/framework没有复制出来放在工具目录;
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Util.ExceptionWithContext: error in opening zip file
at org.jf.dexlib.Util.ExceptionWithContext.withContext(ExceptionWithContext.java:54)
at org.jf.dexlib.Code.Analysis.ClassPath.loadBootClassPath(ClassPath.java:220)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:145)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(ClassPath.java:110)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:104)
at org.jf.baksmali.main.main(main.java:297)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:144)
at org.jf.dexlib.DexFile.<init>(DexFile.java:295)
at org.jf.dexlib.Code.Analysis.ClassPath.loadBootClassPath(ClassPath.java:216)
... 4 more
Error while reading boot class path entry "services.odex".
此错误为/system/framework复制出来放在工具目录下了,但是将其中的jar文件也放进去了,要删除jar文件;
*************************此时已拿到classes.dex文件*********************************
反编译过程(linux):
把classes.dex复制到dex2jar.sh所在目录,在命令行下进入这个目录,执行:./dex2jar.sh classes.dex,生成一个jar文件
反编译过程(windows):
将classes.dex复制到dex2jar.bat所在目录dex2jar-x.x.x.x文件夹。
在命令行下进入dex2jar.bat所在目录,
运行
dex2jar.bat classes.dex
即可生成
classes_dex2jar.jar
************************此时已拿到classes_dex2jar.jar文件*****************************
进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,另存为之后可以生成一个zip文件,解压此zip文件,即可得到源代码,然后就可以使用eclipse或者source insight进行查看。
************************此时源码获取成功************************************************
0 0
- APK文件与odex文件反编译
- APK文件与Odex 文件 反编译
- Android 反编译odex文件
- Android odex文件反编译
- android反编译odex文件
- Android odex文件反编译
- 反编译odex文件
- Android odex文件反编译
- Android odex文件反编译
- Android odex文件反编译
- Android odex文件反编译
- odex文件反编译报错
- Android 中Odex文件生成与合并apk
- apk反编译,包括odex
- Android 的odex的文件反编译
- Android 的odex的文件反编译
- 如何合并apk和odex文件
- apk不编译生成odex文件
- IO流的关闭问题
- 黑马程序员_判断语句与循环语句
- android实例:功能导图 + 侧滑菜单
- jbpm4.3表结构和表字段说明
- Dom树:(Node)结点树
- APK文件与odex文件反编译
- WM_CLOSE WM_DESTROY WM_QUIT 区别
- 剑指off T3 杨氏矩阵搜索算法
- 生产者与消费者模型,简单实例(一个生产者,一个消费者)
- C++语法细节(1)
- 计算机的书
- http://stackoverflow.com/questions/19157977/ld-symbol-dyld-stub-binding-helper-not-found-normally-in
- java 异常以及回收机制 工作笔记
- 获取地球某点最新的磁偏角