Android 逆向学习(一)反编译路径,不包含打包

一、简介

  • 反编译几种路径,不同的情况走不同的路径

    • 路径1:apk -> smali:用于重新打包。
    • 路径2:apk -> dex -> jar -> java:绕几次最后得到 java 。
    • 路径3:apk -> frida -> dex -> jar -> java:绕几次最后得到 java 。
    • 路径4:apk -> java(jadx):直接得到 java 。

    但这几种只适合没加固的 apk 包。

二、路径1

  • 找一个普通的 apk 安装包,下载一个 apktool 工具。
    在这里插入图片描述

  • 下载好 apktool 两个文件后,将它们与 apk 文件放在同一个文件夹内,这样就不需要配置环境变量了。

    在这里插入图片描述

    然后进行使用命令:

    # 查看帮助指令
    $ sh apktool.sh -h
    
    # 执行
    $ sh apktool.sh d test.apk -f -o ./dist
    

    在这里插入图片描述

    在这里插入图片描述

三、路径2

  • 找一个普通的 apk 安装包,通过双击解压获得内部文件,就得到了 classes.dex 文件。

    在这里插入图片描述

  • 得到 classes.dex 后,如何转成 jar ? 下载 dex2jar,解压之后将dex-tools-xxx 文件夹与 apkapk 解压得到的文件夹都放在同一级目录,然后执行命令将 dex 转为 jar 文件,最为核心的就是 dex-tools-xxx/d2j-dex2jar.sh 文件,它就是用来转换的指令文件。先进入命令行,到这一层目录,然后根据情况选择转换命令。

    在这里插入图片描述

    • 方式一:

      直接对 classes.dex 进行转换,执行后会将 jar 文件输出到当前同级文件夹中,当然也可以输出到指定文件夹。

      $ sh ./dex-tools-xxx/d2j-dex2jar.sh ./test/classes.dex
      
    • 方式二:

      直接对 test.apk 进行转换,执行后会将 jar 文件输出到当前同级文件夹中,当然也可以输出到指定文件夹。

      $ sh ./dex-tools-xxx/d2j-dex2jar.sh -f ./test.apk
      
    • 以上命令任意选一个,等待执行完毕后,会获得一个 jar 文件:

      在这里插入图片描述

  • 如何读取 test-dex2jar.jar 呢?下载 JD-GUI,打开网站后,找到 JD-GUI,根据自身电脑环境进行下载安装。

    在这里插入图片描述

    这边选择的是 jd-gui-1.6.6.jar 也就是第一个,因为下载 mac 版本 后提示不明开发者,且还无法安装,用 jar 的只需要在系统设置安全管理中允许访问即可使用。

    打开 JD-GUI 工具后,可以通过 Open File 或直接将 jar 文件拖入丢进工具中。

    在这里插入图片描述

    就能看到内部 java 源码,但是这个源码明显是处理过的,但是通过点击这些带横线的类名是可以跳转到对应文件的。

    在这里插入图片描述

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值