APK反编译

Quibbler 2019-11-11 875

APK反编译


        反编译apk,查看源码资源等,需要用到三个工具apktooldex2jarjd-gui。首先去三个平台下载各自的工具包。这里不提供下载,百度可以找到下载资源。



1、apktool

        借助apktool提取apk中的目录,资源。使用下面的命令,最好使用Windows原生的shell,用git一堆坑,主要是路径和linux不一样。

        可能会遇到缺少framework的错误,这就需要从手机中将系统的framework-res.apk拿出来

adb pull system/framework/framework-res-hwext.apk

        pull到电脑上,然后通过apktool安装上

java -jar apktool.jar if framework-res-hwext.apk

        默认安装在C盘对应的目录下,可能会提示没有权限,这是用管理员shell或者创建好对应的目录再安卓。

        安装好之后,就可以使用用下面的命令使用apktool,提取到当前目录的source目录下。可以看见source目录中和工程目录结构相似。

java -jar apktool.jar d -f com.huawei.search.apk -o source

        


2、dex2jar

        其次,使用 dex2jar反编译 apk 得到 Jar 包。进入dex2jar工具目录中

       

         将apk解压里面得到的classes.dex拷贝到dex2jar工具目录中;执行命令:

 ./d2j-dex2jar.bat ./classes.dex

        会报错,提示是version版本的问题,试了好几个版本都不行。

        终于找到一个机灵鬼写的博客,修改classes.dex的头部,用notepad++打开.dex文件,可以看见


        dex2jar应该就是通过这个进行version匹配的,可见新版本已经是038,手动改成036保存。这时候可以反编译成功。

再次执行,得到对应的jar文件:



3、jd-gui查看jar源码

        最后,通过jd-gui打开反编译的classes-dex2jar.jar文件

        即可查看代码,但是绝大多数都是经过混淆的。


        上面这一顿操作下来是不是感到很费劲,那么多命令要记住。好在已有集成的逆向工具,一键帮开发者完成反编译。详见交互式反编译器:GDA一文。

        


更多资料:

        apk 反编译 - 最新版图文教程

        APKTool用法

        decompile-apk

        android-security

        APKLab

        

不忘初心的阿甘
最新回复 (1)
    • 安卓笔记本
      3
        登录 注册 QQ
返回
仅供学习交流,切勿用于商业用途。如有错误欢迎指出:fluent0418@gmail.com