android APK反编译

作者: 迈阿密小白 | 来源:发表于2018-11-22 09:39 被阅读4次

    前言

    针对android APP的安装包测试,是测试环节中很重要的一环,也是经常被忽略的一环。

    针对APP安装包主要由以下几个测试点:

    • 能否反编译
    • 安装包是否签名
    • 完整性校验
    • 权限设置检查
      等等

    这次主要记录一下,对自己公司产品反编译的一次过程

    准备

    需要的工具

    • apktool
    • dex2jar
    • jd-gui
      直接去官网下载就好了,这边地址就不贴了

    过程

    1.apktool

    1.先下载拿到apktool.bat和apktool.jar(这边可能是apktool_x_x.jar 需要手动修改一下文件名)


    apktool.png

    2.然后把这两个文件放到C:\Windows底下
    3.将需要反编译的apk放在一个目录中,然后cd 到对应的目录
    4.执行命令

    apktool.bat d app-online-release.apk
    

    会在该目录下生成一个app-online-release的文件夹


    image.png

    APK反编译

    1.将xxx.apk 改为xxx.zip,然后解压
    2.解压后的文件夹中有一个class.dev


    class.png

    3.将这个文件复制到dex2jar的目录下
    4.cd 到dex2jar目录下,执行命令

    d2j-dex2jar.bat classes.dev
    

    会生成一个jar文件


    dex.png class.png

    可能遇到的坑
    1.在执行d2j-dex2jar.bat classes.dev的时候可能会报错

    jar2dex classes.dex -> classes-jar2dex.dex
    call com.android.dx.command.Main.main[--dex, --no-strict, --output=E:\android\dex2jar-2.0\classes-jar2dex.dex, E:\android\dex2jar-2.0\classes.dex]
    no classfiles specified

    解决方案:将jdk版本由1.8降为1.7

    5.打开jd-gui,打开上一步骤中生成的class-dex2jar.jar


    jd-gui.png

    可以到看到代码经过了混淆

    相关文章

      网友评论

        本文标题:android APK反编译

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