• 主页
  • 随笔
所有文章 友链 关于我

  • 主页
  • 随笔

Android的反编译工具以及使用

2021-03-04

包括apktool,dex2jar,以及JD-GUI

apktool

官网地址

apktool工具是可以把apk包反编译成smali,可以从apk里面提取资源,也可以修饰smali的代码然后重新打包apk。
apktool依赖与Java8,本地的Java版本需要再8或以上。
具体的安装可以去看官网,mac与windows都支持,可以看看Mac安装Apktool与apktool的安装和使用

apktool命令:

1
2
3
4
5
// 反编译
apktool d xxx.apk

// 打包apk
apktool b xxx

经过重新打包apk之后是没有签名的,需要自己使用命令行去重新签名

推荐阅读:

  1. Apktool 参数详解
  2. Apktool 源码-反编译
  3. Apktool源码-重新打包

dex2jar

该工具可以把我们的dex包转换为jar包,下载地址

我们下载了之后,可以解压在任意文件夹下,然后把dex2jar的文件夹路径配置到环境变量中,然后再命令行中,通过dex2jar就可以看到他的具体命令,假如没有配置环境变量,则可以通chmod 777 d2j-dex2jar.sh 给权限,然后通过sudo sh d2j-dex2jar.sh xxx.dex即可把dex解析为jar包。

环境变量配置以后可以直接使用d2j-dex2jar.sh xxx.dex即可反编译。

需要注意的一个问题是我们的dex2jar假如是反编译由较高的java 版本得到的dex文件,则需要修改dex文件的编译版本号,否则会报一个com.googlecode.d2j.DexException: not support version,关于如何修改dex的版本号,可以看【Android】应用程序解码编译和dex2jar,

JD-GUI

他是一个查看Jar包的图形UI工具,下载地址

直接把反编译得到的Jar存入拖入即可查看。

  • Android
Jetpack的组成
学习Android的插桩计划【置顶】
  1. 1. apktool
  2. 2. dex2jar
  3. 3. JD-GUI
© 2023 liweijie
Hexo Theme Yilia
  • 所有文章
  • 友链
  • 关于我

tag:

  • Android
  • Jetpack
  • Java
  • Dart
  • OpenSource
  • MiniProgress
  • JavaScript
  • RN
  • 开发总结
  • Kotlin
  • 开发规范
  • IM
  • Java 设计模式

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

职业:移动开发者

Skill:Java,Kotlin,RN,Flutter