Apk反编译实现步骤

作者: kolen_j | 来源:发表于2016-12-19 17:04 被阅读147次

    1. 使用ApkTool拆包,得到AndroidManifest和res等资源文件

        命令使用:
        java -jar apktool.jar d yourApkFile.apk
    
        // 注意`apktool.jar`是刚才下载后的jar的名称,`d`参数表示decode
        // 在这个命令后面还可以添加像`-o -s`之类的参数,例如
        // java -jar apktool.jar d yourApkFile.apk -o destiantionDir -s
        // 几个主要的参数设置方法及其含义:
        -f 如果目标文件夹已存在,强制删除现有文件夹
        -o 指定反编译的目标文件夹的名称(默认会将文件输出到以Apk文件名命名的文件夹中)
        -s 保留classes.dex文件(默认会将dex文件解码成smali文件)
        -r 保留resources.arsc文件(默认会将resources.arsc解码成具体的资源文件)
    

    2. 将dex文件转换成jar文件

        方法1:  通过dex2jar反编译dex文件(步骤1中获取),得到源码
    
                命令用法:
                d2j-dex2jar classes.dex
                // 获取classes.dex文件在最前面说过,只要把Apk当做zip解压出来,里面就有dex文件了
                // 或者用apktool反编译时带上 `-s` 参数
                (打开下载的dex2jar-2.0文件夹,里面有shell和bat脚本,进入终端,就可以在命令行使用了。)
    
        方法2:  通过Google-enjarify,得到源码(推荐使用)
    
                用法:
                1.下载获取enjarify,解压到期望目录,并将该路径添加到环境变量path中
                2.(可选) 由于enjarify要使用到python解析器,所以如果你电脑还没安装python开发环境,下载一个python解析器(官方推荐pypy,下载地址:http://pypy.org/,注意:要pypy3.+版本)
                3.下载之后解压到期望目录,并将该路径添加到环境变量path中 (在命令行输入 pypy,出现下图所示即为安装成功)
                4.找到Enjarify目录下的enjarify.bat文件,使用编辑器打开(建议notepad),修改 
                  python3 -O -m enjarify.main %* –> pypy -O -m enjarify.main %*
                5.在命令行输入 enjarify -f XXX.apk , -f 在这里是必须要加上的,否则会出现警告,无法反  编译APK文件
                6.反编译之后的文件是一个jar文件,使用jd-gui查看Jar文件
    
    验证pypy是否安装好.PNG
    3. jd-gui查看java源代码
        下载对应系统的jd-gui(下载地址:http://jd.benow.ca/), 解压得到jd-gui.exe,
        双击既可以运行这个工具,直接把上一步得到的xxx.jar拖到jd-gui程序的界面上即可打开查看java源码了
    

    ===相关软件下载链接===

    ApkTool
    dex2jar
    enjarify
    pypy
    JD-GUI
    参考博客:
    Android反编译技术总结
    Google反编译新工具——Enjarify使用

    相关文章

      网友评论

        本文标题:Apk反编译实现步骤

        本文链接:https://www.haomeiwen.com/subject/ypptvttx.html