apk文件反编译成android代码
文章主要介绍apktool,jd-gui,dex2j的编译步骤,若有其他需要可直接滑到文章最后有自动化工具下载地址。自动化工具不需要代码操作,直接拖动反编译出源代码。
1.Apk反编译步骤
准备工具
apktool,jd-gui,dex2jar也可以从连接中下载链接: https://pan.baidu.com/s/1alC03YxFefyHlM7BFl6ELw 提取码: jsjs
(1) ApkTool拆包,得到AndroidManifest和res等资源文件
使用apktool.jar文件进行拆包,命令如下
java -jar apktool.jar d yourApkFile.apk
// 注意`apktool.jar`是刚才下载后的jar的名称,`d`参数表示decode
// 在这个命令后面还可以添加像`-o -s`之类的参数,例如
// java -jar apktool.jar d yourApkFile.apk -o destiantionDir -s
// 几个主要的参数设置方法及其含义:
-f 如果目标文件夹已存在,强制删除现有文件夹
-o 指定反编译的目标文件夹的名称(默认会将文件输出到以Apk文件名命名的文件夹中)
-s 保留classes.dex文件(默认会将dex文件解码成smali文件)
-r 保留resources.arsc文件(默认会将resources.arsc解码成具体的资源文件)
apk拆包结果
(2) dex2jar反编译dex文件,得到java源代码
上一步中,我们得到了反编译后的资源文件,这一步我们还想看java源代码。这里要用的工具就是dex2jar。将dex格式的文件,转换成jar文件。
将.apk文件拷贝并将后缀名更改成.zip,将.zip文件解压缩。
建议将解压缩的classes.dex和classes2.dex文件复制到dex2jar文件夹下。
使用命令给dex2jar文件夹授权,chmod -R 777 dex2jar,windows启动时使用管理员启动即可。
打开下载的dex2jar文件夹,里面有shell和bat脚本,进入终端,就可以在命令行使用了,windows使用cmd也可以执行,运行文件。
命令如下
d2j-dex2jar.sh classes.dex
d2j-dex2jar.sh classes2.dex
// 获取classes.dex文件在最前面说过,只要把Apk当做zip解压出来,里面就有dex文件了
// 或者用apktool反编译时带上 `-s` 参数
运行后,可以看到classes.dex已经变成了classes-dex2jar.jar。
解压后目录
(3) jd-gui查看java源代码
用法:下载后双击既可以运行这个工具,直接把上一步得到的classes-dex2jar.jar拖到jd-gui程序的界面上即可打开了,效果如下图所示。
二、自动化工具汇总(一键反编译Apk)
1.谷歌提供的工具:android-classyshark
下载地址:https://github.com/google/android-classyshark/releases,下载下来之后是一个可执行的jar文件,win下或者mac下都只要双击即可运行。
2.Python实现的工具:AndroidGuard
下载地址:https://github.com/androguard/androguard/releases
3.Mac专属工具:Android-Crack-Tool
下载地址:https://github.com/Jermic/Android-Crack-Tool/releases,在Mac环境下使用的App,集成了Android开发中常见的一些编译/反编译工具
apk文件反编译成android代码相关推荐
- 对Android APK文件反编译查看其源码
概述 作为android的开发者,相信你会有那么一刻,比如,对于手机中某一款App,有一项功能或者效果你蛮喜欢的,想学习一下它具体是怎么实现的.追求高一点的话,我想深究它这个App的项目架构,本着一探 ...
- 什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
文章目录 1 什么是pyc文件 1.1 什么是pyc文件 1.2 pyc文件是怎么生成的,有什么好处 2 把python的py文件编译成pyc文件 2.1 使用python内置库py_compile把 ...
- android apk 文件反编译
Android 反编译APK 的好处 第一,当自己代码加混淆的时候,代码找不到CLASS 可以反编译下看看,到底是没有屏蔽,还是有其他的问题 第二,参考下别人的代码是怎么写的 使用工具 就一个 htt ...
- 关于APK文件反编译方法(图文详解)
今天晚上利用个把小时,终于把apk反编译彻底弄明白了,现在详细讲解一下apk反编译的具体过程. 1.下载三个工具 APK Multi-Tool 作用:获取apk的配置资源文件 dex2jar-0 ...
- so文件反编译为python代码_【反编译系列】四、反编译so文件(IDA_Pro)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程 ...
- android技巧:apk文件反编译以及签名打包,APKTool 反编译,打包,签名
apktool 主要用于逆向apk文件.它可以将资源解码,并在修改后可以重新构建它们.它还可以执行一些自动化任务,例如构建 apk 下载地址 反编译APK 命令格式:apktool d [ apk文件 ...
- apk文件反编译d2j-dex2jar.bat/dex2jar.bat遇到的问题
使用apk反编译软件dex2jar与jdgui时,出现了以下两种情况: I:\Android_decode\APK_decode\dex2jar>dex2jar.bat classes.dexv ...
- Python文件反编译,还原代码(xxd、uncompyle6)
这里有难度的就是如何复制文件的完整内容,如果能直接下载既下载,否则就要用方法完整拷贝内容 首先复制文件的十六进制的内容 xxd命令转换二进制文件为十六进制文件 xxd .configuration.c ...
- s19文件反编译成c语言,S19文件反编译器使用说明.ppt
S19文件反编译器使用说明 S19 decoder Sep 2008 lzbing Decoder Find decoder.exe in codewarrior installation direc ...
最新文章
- 一个普通AI程序员的内心独白...
- 《STL源码剖析》学习--traits
- android 自定义安全键盘,android 实现自定义安全键盘 且每次数字随机变换位置
- Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
- P2742-二维凸包/圈奶牛Fencing the Cows【凸包】
- python的matplotlib库怎么安装_为Python安装matplotlib库
- C++之实现优先队列
- java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.setId
- npm ERR! code EINTEGRITY 解决方案
- 2022年前端面试宝典【1万字带答案】
- 视频教程-C++Windows之WDM驱动程序开发(实战篇)上-驱动/内核开发
- java身份证实名认证-身份证二要素实名认证-身份证实名校验-身份证一致性实名认证
- 寻中华文化之根 承抗战先烈之志
- python读取fits第三方库_如何读取FITS
- JavaSE_day02【类型转换、进制、运算符】
- 世界杯 叮当 机器人 树莓派_世界杯营销大战,移动互联网谁捧起了大力神杯
- Linux内核模块管理
- 北京考虑分时分区单双号限行预期效果遭质疑-北京-分时分区-单双号限行
- 麦当劳中国推出全新平台“麦麦夜市”;美联航订购5000万加仑可持续航空燃料 | 美通企业日报...
- sap 个模块 含义 FI/CO/MM/PP/QM/WM 及其它 分别指什么模块?是干什么用的?
热门文章
- Python基本语法的练习题及题解
- 数据分析实战 - 超市销售数据分析,csv输入输出(附带样本集)
- 学SQL,要安装什么软件?
- DingTalk钉钉机器人单聊互动卡片消息的一次实现(附仓库)
- c语言能调用refprop软件么,如何用C++6.0调用refprop物性查询软件 - 能源 - 小木虫 - 学术 科研 互动社区...
- 计算从指定日期开始的第几周的周几的日期
- Python超详细基础教程,从入门到实践
- loading页面加载(等待页面加载完毕再隐藏loading页面)
- IEEE ACCESS的latex模板中全文\emph{}无法正常显示
- 小程序服务器gbk编码,微信小程序实现GBK和UTF-8互转