APK反编译学习心得

Apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中一个比较实用的技巧吧,当我们对别人开发好的应用感兴趣时,我们就可以通过这种技术手段将别人打包好的apk进行反编译,继而可以看到我们感兴趣的内容,反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。

使用环境Windows

一,工具

1.1 、工具介绍

apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看

           dex2jar:作用:将apk反编译成java源码(classes.dex转化成jar文件)

           jd-gui:作用:查看APK中classes.dex转化成出的jar文件,即源码文件

 

1.2、工具下载

官方最新版本下载地址:

 apktool(google code)

dex2jar(google code)  

jd-gui(google code)最新版请见官方

 

CSDN加强版下载,支持分包的classes.dex转化成jar文件:

                   https://download.csdn.net/download/qq_35781317/11179271

二、使用

         win+R 打开 cmd 命令行,通过 cd 命令切换到apktool所在的文件夹,通过apktool命令反编译apk。

         APK反编译学习心得_第1张图片

 

运行反编译效果:

APK反编译学习心得_第2张图片

反编译之后的目录如下:

APK反编译学习心得_第3张图片

可以看到,反编译之后生成的都是smali代码,而我对smali代码不熟悉,所以用dex2jar将应用中的dex转换成jar包,然后用jd-gui打开jar阅读代码,下面我们用dex2jar生成jar包。

 

将apk后缀名改为zip并解压:

APK反编译学习心得_第4张图片

可以看到,apk采用了分包技术,而用dex2jar并不能将所有的dex合并成一个jar包,所以这里我们采用了dex2jar的plus版本,输入命令如下:

APK反编译学习心得_第5张图片

用jd-gui打开classes.jar,如下:

APK反编译学习心得_第6张图片

你可能感兴趣的:(APK反编译学习心得)