Android 逆向工程:反编译第一个APK

一、前言

众所周知,APK是由源码编译生成的,那么反过来,源码也是有可能是由APK反编译的。近来学习Android逆向工程,所以写写博客记录学习过程还是很有必要的,那么就从反编译一个简单的APK开始吧。

二、工具

1、apktool

作用:资源文件获取,可以提取apk中的图片文件和布局文件

下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

2、dex2jar

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

下载地址:http://sourceforge.net/projects/dex2jar/files/

3、jd-gui

作用:将dex2jar转化成的jar文件打开,展示其源码文件

下载地址:http://jd.benow.ca/  

三、反编译过程

1、为方便操作,将上面三个工具下载完成放到同一文件夹下

将dex2jar 和 jd-gui 解压到当前目录。

同时准备一个将要被反编译的apk,放于当前目录

2、apktool反编译获取资源文件

打开cmd命令窗口,通过cd指令切换到工具所在目录

cd D:\AndroidProgramming\AndroidDevelopTools
d:

运行apktool.jar包完成反编译

java -jar apktool_2.4.0.jar d -f D:\AndroidProgramming\AndroidDevelopTools\decompile_apk\app-release.apk -o decompiled

//在java中,运行可执行jar包的命令是:java -jar jar包名.jar
//以上的命令意义是:启动apktool_2.4.0.jar将位于指定路径文件(D:\AndroidProgramming\AndroidDevelopTools\decompile_apk\app-release.apk)反编译,生成的文件存放到当前目录下的一个decompiled文件夹(文件名可以自定义)中。

运行图如下则反编译成功

反编译成功后即可在decompiled文件夹下看到 AndroidManifest.xml 文件 和 res资源

3、dex2jar反编译获取dex文件

将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件

将获取到的classes.dex放到之前解压出来的工具 dex2jar-2.0 文件夹内

在命令行下定位到dex2jar.bat所在目录,输入

d2j-dex2jar classes.dex

然后就可以看到生成了个classes-dex2jar.jar文件

4、jd-gui反编译查看源码

双击启动jd-gui文件夹下jd-gui.exe文件,在窗口页面打开上述获取到的classes-dex2jar.jar

然后就可以看到源码了(代码混淆过的话,类文件名称以及里面的方法名称会以a,b,c....之类的样式命名)

 

操作完发现并不难,不过需要注意的是在实际中apk会有一些混淆和加固,所以以上仅对简单apk有效,更进一步的反编译还需进一步学习逆向工程相关内容。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KWMax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值