问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何反编译Android 的apk/dex/odex,获得源码

发布网友 发布时间:2022-04-26 20:21

我来回答

3个回答

热心网友 时间:2023-10-28 20:48

反编译普通的APK文件:
对于普通的APK/DEX文件的反编译,其实工具有很多, 包括:

ByteCode Viewer: 一个可视化的集成工具,说实话,不太好用,不够稳定,生成代码质量中等。
dex2jar + jd_gui: 这两个工具组合还可以, 用起来比ByteCode Viewer麻烦一些,但比较稳定,生成代码质量中等。

反编译ODEX文件:
Android 5.0 Lollipop以后,Google用ART代替了以前的Dalvik,对于普通的app来说我们仍然可以用上面的方法来把dex文件反编译成Java源代码。但对于系统预装的App,特别是类似应用商店,播放器等, 你会发现这些应用的apk文件中找不到对应的classes.dex文件,而是会发现在其子目录下有个.odex文件。 那如何反编译这个odex文件呢?我通过google查了查,知道应该用baksmali,但从github上下载了几个版本都不行,报各种不同错误。

具体方法如下:

1. 从 这里 下载工具包, 解压缩到本地。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同。有时候高版本反倒不好用。

2. 打开工具所在目录, 按住shift键, 点击鼠标右键,打开Windows命令窗口

3. 把 odex文件拷贝到该目录

4. 在命令窗口运行: oat2dex.bat *.odex . 正常情况下,应该显示OK等信息。如果报错的话,说明这个文件无法转换,后面的也不用试了。

5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件。

6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹,并将temp.dex反编译到该文件夹。-a 21 表明的是Android内核的版本21

7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex , 反编译为classes.dex文件。

需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息,因此反编译这种classes.dex 文件后生成的java代码可读性会更差些。

8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码。

热心网友 时间:2023-10-28 20:48

我会一个简单的反编译方法就是把apk下载下来,然后把后缀改成.rar就可以了。

热心网友 时间:2023-10-28 20:48

用apktool这款反编译软件

热心网友 时间:2023-10-28 20:48

反编译普通的APK文件:
对于普通的APK/DEX文件的反编译,其实工具有很多, 包括:

ByteCode Viewer: 一个可视化的集成工具,说实话,不太好用,不够稳定,生成代码质量中等。
dex2jar + jd_gui: 这两个工具组合还可以, 用起来比ByteCode Viewer麻烦一些,但比较稳定,生成代码质量中等。

反编译ODEX文件:
Android 5.0 Lollipop以后,Google用ART代替了以前的Dalvik,对于普通的app来说我们仍然可以用上面的方法来把dex文件反编译成Java源代码。但对于系统预装的App,特别是类似应用商店,播放器等, 你会发现这些应用的apk文件中找不到对应的classes.dex文件,而是会发现在其子目录下有个.odex文件。 那如何反编译这个odex文件呢?我通过google查了查,知道应该用baksmali,但从github上下载了几个版本都不行,报各种不同错误。

具体方法如下:

1. 从 这里 下载工具包, 解压缩到本地。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同。有时候高版本反倒不好用。

2. 打开工具所在目录, 按住shift键, 点击鼠标右键,打开Windows命令窗口

3. 把 odex文件拷贝到该目录

4. 在命令窗口运行: oat2dex.bat *.odex . 正常情况下,应该显示OK等信息。如果报错的话,说明这个文件无法转换,后面的也不用试了。

5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件。

6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹,并将temp.dex反编译到该文件夹。-a 21 表明的是Android内核的版本21

7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex , 反编译为classes.dex文件。

需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息,因此反编译这种classes.dex 文件后生成的java代码可读性会更差些。

8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码。

热心网友 时间:2023-10-28 20:48

我会一个简单的反编译方法就是把apk下载下来,然后把后缀改成.rar就可以了。

热心网友 时间:2023-10-28 20:49

用apktool这款反编译软件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
淘宝逛逛怎么发布内容? 在手机淘宝上逛逛怎么发布内容? 楼梯的高度一般为多少? 跪求如何下载亿通L309的GPRS导航系统。我把内存卡里的都删了,因为我... 康佳kc309的音乐播放器怎么弄啊?我有个内存卡上有蛮多歌、可是放到手机... 亿通L309手机导航地图删了怎么恢复 ...B7732想把短信放在内存卡里,然后导入SCH-W309里,打开时出现了乱码... 谁可以给我教一下步步高V309D怎么安装主题和游戏啊 亿通l309自在的地图导航没有了 怎么办 签商品房买卖合同需要注意哪些方面 2016新课标全国卷3语文作文范文 2018全国三卷语文作文三个标语,只写一个,写奋斗精神的,算偏离题意,打十几分吗?😭😭 京东金条借款是否会上报央行征信系统? 安卓apk文件如何反编译? android反编译工具中文名字怎么改 全国卷3语文作文你们再看看书,我再看看你们, 可以从青春入题吗? 怎样反编译 Android APK 全国三卷2021语文作文只写青年担当算跑题吗? 如何进行android 反编译 2019全国卷3语文作文可以写哪些角度? 京东金条每次借贷都会上征信查询吗? 2017年的全国三卷语文作文题目是? 2016全国高考第三卷语文作文 金东金融金条上征信吗? 2016全国三卷语文作文范文 小学三年级上册语文第三单元的教学目标是什么? 2020年以电子政务的运营理念为主题写一篇不少于八百字的论文?_百度问一问 以我安全,我健康,我快乐为话题写一篇800字作文网 求《我爱星城魅力教师》1000字左右《网络安全与道德》1000字左右《我身边的雷锋》1000字左右 关于网络疏远了我们人类的关系作文大全500字左右 京东金条上征信报告吗? 跪求android apk反编译详细教程,本人着实愚笨,看不懂网上滴步骤 2019年普通高等学校招生全国统一考试全国卷3语文试卷及答案 如何将反编译android代码 2016年高考语文全国3卷作文,这段材料的中心思想“放弃维权公布技术,销售额不降反升”是什么意思? 如何反编译android应用以及重编译,签名和对齐优化 怎么将android的apk反编译 android 反编译错误 遇到 乱码的文件名 怎么办? android反编译工具 jadx 怎么读? android 反编译修改第三方输入法 win7怎么删除文件? win7中怎么删除库中文件夹 驱蚊水插电后1米之内的食物还能吃吗? 灭蚊子最有效的方法有什么的,可以选择哪些电蚊液杀蚊的 驱蚊水怎么插电源插头 为什么开了空调,点了蚊香还有蚊子呢,谁有驱蚊的好方法 什么方法灭蚊最好? 办的马上金融分期还款第几个月可以全部还完 马上金融分期逾期5个月,当时以为已经还完了没注意手机借款最后一期198块,死定了这一次 马上消费金融手机分期逾期三年今天已还清,啥时候征信能白?