对某APK反编译修改代码到重新打包编译

一.使用工具

  1. apktool (用于 资源文件获取,可以提取出图片文件和布局文件进行使用查看) 
  2. dex2jar(用于 源码文件获取,将apk反编译成java源码(classes.dex转化成jar文件)
  3. jd-gui  (用于 源码查看,查看APK中classes.dex转化成的jar文件,即源码文件

 二.下载地址

1.apktool下载地址:iBotPeaches / Apktool / Downloads — Bitbucket

2.dex2jar下载地址:dex2jar - Browse Files at SourceForge.net

3.jd-gui下载地址:Java Decompiler

三.Apk反编译流程 

为了方便进行反编译,将上述下载好的3个工具统一放到一个文件夹中

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

(1)进入CMD命令行,切换到上述的3个工具的所在目录,如:C:\Users\whw\Desktop\反编译工具包

(2)运行 apktool_2.6.1.jar 这个jar文件来将 apk 文件进行反编译。在java中,运行可执行jar包的命令是:

 java -jar apktool的名字 d (反编译) 要解包的apk -o (输出) 文件名

使用如下的命令运行apktool_2.9.0.jar 反编译 app-debug.apk

java -jar apktool_2.9.0.jar d -f C:\Users\whw\Desktop\反编译工具包\app-debug.apk -o MMTS   

 

2、使用dex2jar反编译apk得到Java源代码

  将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),如下图所示:

 在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:

  命令执行完成之后,在当前目录下就可以看到生成的Jar文件了,如下图所示:

 

3.使用【jd-gui】工具将class文件反编译成java源代码

 反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

 JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名。

四、反编译遇到的问题

(1)apktool版本太旧导致反编译失败的问题 

Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file

借鉴自APK反编译-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值