提取安卓手机中以安装的apk 并 反编译

一.导出步骤:
1)查看当前可见界面
目的:找到对应应用的包名和当前Activity的名字
adb shell dumpsys activity | findstr "mResumedActivity"

1)找到应用的包名
执行命令:

$ adb shell pm list package
输出结果:

com.pplive.movie3d
.
.
.

2)找到应用备份包的位置,比如要找com.pplive.movie3d
执行命令:

$ adb shell pm path com.pplive.movie3d
输出结果:

package:/system/app/PPTV3D/PPTV3D.apk
3)提取安装包
执行命令:

$ adb pull /system/app/PPTV3D/PPTV3D.apk
执行结果:

/system/app/PPTV3D/PPTV3D.apk: 1 file pulled. 3.9 MB/s (57503627 bytes in 14.164s)
至此,提取成功,可以发送/复制到手机上进行安装了 系统及和第三方均可。

二.反编译

<meta charset="utf-8">

下载反编译所需软件

  1. apktool 作用:把apk文件反编译,取出资源
  2. dex2jar 作用:把存有java内容的dex文件反编译(classes.dex转化成jar文件)
  3. jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件

百度网盘:https://pan.baidu.com/s/1T94PX4EBYyuJKOqfNqyc6g 提取码: mquv

使用:

<meta charset="utf-8">

1. 使用apktool反编译apk得到图片、XML配置、语言资源等文件

image

在存放下载好的反编译工具所在目录的上方输入cmd可以使cmd直接定位到该文件夹目录下


image.png
java -jar apktool_2.4.0.jar d -f G:\BaiduNetdiskDownload\安卓反编译工具/PPTV3D.apk  -o outFileDir

命令格式为

java -jar apktool.jar包的文件名 d -f  要反编译软件包名 -o 要输出的文件夹
image.png

成功便可在输出的outFileDir文件夹下看到资源内容了

2.使用dex2jar反编译dex文件得到Java源码


image.png

以压缩包的的形式打开apk安装包

找到dex结尾的文件classes.dex,这就是java编译打包后的文件

将获取到的classes.dex放到之前解压出来的反编译工具【dex2jar】文件夹内

image.png
image.png

直接输入cmd 回车

cmd进入该文件夹后输入

d2j-dex2jar classes.dex
image.png

执行完成后就可以在该目录下看到dex文件反编译成功后得到的jar包了

image.png

最后打开所下载的jd-gui-windows工具打开反编译得到的jar文件就可以反编译得到java源代码了

image.png
image.png
image.png

结束。。。。。。

推荐阅读更多精彩内容