zoukankan      html  css  js  c++  java
  • mac 环境下Android 反编译源码

    mac环境下Android 反编译

    一、需要的工具

              apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。

              dex2jar:将反编译后的classes.dex文件转化为.jar文件。

              jd-gui:用于将.jar文件转换成java代码。

    二、反编译步骤

    第一步:使用apktool工具对APK进行反编译

    1. 下载apktool:https://ibotpeaches.github.io/Apktool/install/

    2.把下载好的apktool脚本和apktool.jar文件移动到 /usr/local/bin 文件夹下

    3. 使用命令chmod +x 分别对apktool和apktool.jar文件进行提权

    //先进入到/usr/local/bin文件夹下
    
    cd /usr/local/bin
    chmod +x apktool
    chmod +x apktool.jar

    4. 测试是否成功,终端输入apktool,若成功,如下图

     5. 运行apoktool脚本进行反编译

    ①. 把你需要反编译的apk文件也复制到 /usr/local/bin 文件夹下,确保apktoolapktool.jar以及apk文件都在/usr/local/bin目录下
    ②. 终端输入命令 apktool d xxx.apk回车,等待执行完毕

    //如果当前已在/usr/local/bin 目录下,忽略此步
    cd /usr/local/bin  
    
    //开始反编译目标APK文件
    apktool d xxx.apk

     ③. 执行完毕后目录下会生成反编译apk的对应文件夹

     但是我们在反编译apk后的文件夹里并没有看到classes.dex文件,这时候就需要在上述命令行添加-s,表示禁止将dex文件解码成smali

    apktool d -s xxx.apk

     

    第二步:使用dex2jar工具把classes.dex文件转化成.jar文件

    1. 下载dex2jar并解压 :   https://sourceforge.net/projects/dex2jar/files/

    2. 进入到你解压后的dex2jar文件夹下(根据你的实际情况文件夹位置不一样),如:

    cd Downloads/dex2jar-2.0

    3. 把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令sh d2j-dex2jar.sh classes.dex

    sh d2j-dex2jar.sh classes.dex

    3. 执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码 

     

    第三步:使用JD-GUI软件查看jar包下的java源码

    1.下载并安装jd-gui    http://java-decompiler.github.io/
    2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了 

     参考文档:https://www.jianshu.com/p/3a305f32c4a3

  • 相关阅读:
    javascript如何封装函数
    addEventListener和attachEvent区别
    Infinity NaN undefined和null
    hasOwnProperty
    蜂巢式图片墙布局
    复选框使用总结
    文本框获得焦点时改变背景颜色
    自定义动画animate
    click()、bind()、live()和delegate()方法
    图片提示效果
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/11239740.html
Copyright © 2011-2022 走看看