安卓Apk反编译学习

一、工具准备

1.apktool

     ApkTool下载地址:https://ibotpeaches.github.io/Apktool/install/,科学上网找到Installation for Apktool下载到apktool.bat(图1中Windows wrapper script)和apktoolx.x.x.jar(Windows下的find newest here)文件,改名为apktool.bat和apktool.jar。

       图1  apktool下载


        Apktool主要完成apk文件的打包和拆解(即build和decode,对应指令后的b和d),得到资源、smali(smali语言大概是davlik虚拟机的机器语言,未作深究)代码等各种文件。反编译指令为apktool d xxx.apk,而重新打包使用apktool b xxx(目录地址)。得到的文件默认放在同目录下,也可在命令中指定,具体命令如图2:

          图2  apktool参数

     

2.dex2jar

      这个就简单了,用来将apk中的classes.dex文件(直接解压提取)转成jar查看,官网下载后把classex.dex放入目录下,执行dex2jar.bat classes.dex命令,即可得到对应的jar文件。

3.jd-gui

    即Java-decompiler,查看jar中的class代码。打开上一步得到的jar文件即可。

4.smali2java

    最为方便的工具,可以直接打开apk查看代码,也可以打开单个smali文件转成Java。不过也只能查看代码,而不能查看其他文件。


二、反编译Java代码

1.使用smali2java直接打开apk


2.使用dex2jar和jd-gui

    解压apk提取classes.dex  ->  使用“dex2jar.bat classes.dex”将其转成jar文件  ->  使用jd-gui查看Java代码。


三、反编译资源文件等

    使用apktool解码apk得到的文件夹如下图3,其中res文件夹下存放layout、drawable、values等资源。

   图3  apktool解码文件

四、回编译
    修改文件后重新打包,使用apktool b xxx命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值