APK反编译工具汇总

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。
未经允许不得转载

在这里插入图片描述

一、导读

我们继续总结学习基础知识,温故知新。

我们在开发的过程中,经常需要反编译自己的apk,也可能要看看竞品的方案什么的,本文记录了一些常用的反编译工具。

二、各种工具

2.1 jadx

这是一个开源工具,挺好用
github
安装:

  • Arch linux
sudo pacman -S jadx
  • macOS
brew install jadx

查看jadx的安装位置 : 
brew list jadx 


在shell中直接输入jadx-gui启动jadx的图形化界面,如果不行,可能需配置相应的环境变量

	在.bash_profile文件中加入JADX_HOME环境变量并保存
	# jadx-gui
	JADX_HOME=/opt/homebrew/Cellar/jadx/
	PATH=$PATH:${JADX_HOME}/bin
  • Flathub
flatpak install flathub com.github.skylot.jadx
  • windows
可直接下载exe文件运行即可

修改jadx默认运行内存大小

  • windows系统
  1. 找到jadx.bat文件
  2. 修改set DEFAULT_JVM_OPTS=“-Xms128M” “-Xmx4g” “-XX:+UseG1GC”
  3. 保存文件,退出并重新启动一次jadx
  • mac
  1. 切换到jadx-gui所在目录:
    cd /Users/xx/jadx-decompiler/bin/
  2. 输入 vim jadx-gui (按e选择edit anyway模式,按i进入insert模式)
  3. 找到 Add default JVM options here. 这样的语句,在下面添加
DEFAULT_JVM_OPTS='"-Xms1024M" "-Xmx8g"'
  1. 按esc键,退出insert模式
  2. 输入冒号:进入底部命令行模式
  3. 输入wq保存退出

2.2 androidkiller

这个也是傻瓜式的操作,可自行下载。

这个软件在反编译多dex时,可能会出错,所以写了一个bat文件来处理
dex_2_jar.bat


@echo off
@rem 1 输入工程名 工程名
echo start
echo 输入工程名
set /p projectName=

echo 输入dex名, eg: classes.dex, classes2.dex
set /p dexName=


echo 输入 dex2jar 名 ,eg: classes-dex2jar, classes2-dex2jar.jar
set /p dex2jarName=


echo 输入smali名 ,eg: smali, smali_classes2
set /p smaliName=

echo ===============
echo %projectName%
echo %dexName%
echo %dex2jarName%
echo %smaliName%

pause


if exist classes-dex2jar.jar (
del classes-dex2jar.jar
) else (
echo dex to jar
)
@rem echo e:
@rem cd  E:\tool\AndroidKiller_v1.3.1\bin\dex2jar 
call E:\tool\AndroidKiller_v1.3.1\bin\dex2jar\d2j-dex2jar.bat E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\%dexName% 


pause

move E:\tool\AndroidKiller_v1.3.1\%dex2jarName% E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\ 

@rem cd /
@rem e:
@rem cd  E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\ 
@rem ren classes-dex2jar.jar %dex2jarName%

pause

set backdir="E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\%smaliName%"
if exist %backdir% (echo "已经存在文件夹") else ( md %backdir% )
pause

"C:\Program Files\WinRAR\WinRAR.exe" x E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\%dex2jarName% E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\%smaliName%"\

@rem 解压classes-dex2jar.jar 
@rem E:\tool\AndroidKiller_v1.3.1\projects\%projectName%\ProjectSrc\%smaliName%"\
echo "解压完成"
set projectName=
echo end
pause



后来发现有大佬写了解决方案,如下:
链接: https://pan.baidu.com/s/1RwHU0WXyq39Cr9-MqAU-XA
提取码: 3x6w

使用方法为: 下载后放入原相应的目录就可以

2.3 apktool

apktool git
轻松反编译apk,解析出资源文件,xml文件,生成smali文件,还可以把修改后的文件你想生成apk

反编译

#mac linux
./apktool d xxx.apk outdir 

#window
apktool.bat d xxx.apk outdir 

编译

./apktool b apppath outpath

2.4 dex2jar

将apk文件中的dex文件转换成jar文件
dex2jar git
download

2.5 jd-gui

jd-gui
jd-gui主要用来反编译class文件,查看jar文件,有图形化界面.

2.6 Android Crack Tool

GUI 已不再更新,用户可手动替换相应最新版 jar 文件到软件内进行使用
github

2.7 GDA

GDA

GDA,一款用C++实现的强大的Dalvik字节码反编译器,具有分析速度快、内存磁盘消耗低等优点,对apk、dex、odex、oat、jar、class、aar文件的反编译能力更强。

GDA也是一个强大且快速的逆向分析平台。不仅支持基本的反编译操作,还支持恶意行为检测、隐私泄露检测、漏洞检测、路径解析、加壳识别、变量跟踪分析、反混淆、
Python&Java脚本、设备内存提取、数据解密等多种优秀功能。加密等

2.8 IDAPro

反汇编专业工具,有一定的学习成本。

三、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

未经允许不得转载

ddd

这款APK反编译工具(ApkToolkit)拥有编译、反编译、签名等功能,对于经常DIY安卓软件的朋友来说,是必不可少的工具。能够支持WIN7系统,但是这款安卓apk反编译工具暂不支持WIN8系统。 APK 反编译工具 ApkToolkit 中文版APK 反编译工具 ApkToolkit 中文版 功能介绍 1、反编译.apk 对.apk文件进行反编译。 2、重建.apk 根据反编译.apk得到目录重建.apk文件。 3、签名.apk 对.apk文件进行签名。 4、优化.apk 对.apk文件进行优化。 5、framework-res.apk工具 实现framework-res.apk的安装和管理。 6、.apk转.jar 将.apk文件转换为.jar文件。 7、.dex转.jar 将.dex文件转换为.jar文件。 插件版本: Java版本:1.7.0_60 Aapt版本:0.2 Apktool版本:2.0.0-dirty Dex2Jar版本:translator-0.0.9.15 使用说明 1、反编译.apk 拖拽【XXX.apk】程序到”反编译.apk”按钮前的输入区,点击”反编译.apk”按钮, 会在文件【XXX.apk】的同级目录下生成文件夹【XXX】。 2、重建.apk 把第一步得到的文件夹【XXX】拖拽到”重建.apk”按钮前面的输入区,点击”重建.apk”按钮, 会在文件夹【XXX】的同级目录下生成未签名的程序【XXX.R.apk】。 3、签名.apk 把第二步得到的程序【XXX.R.apk】拖拽到”签名.apk”按钮前的输入区,点击”签名.apk”按钮, 会在文件【XXX.R.apk】的同级目录下生成已经签名好的程序【XXX.RS.apk】。 4、优化.apk 把第三步得到的程序【XXX.RS.apk】拖拽到”优化.apk”按钮前的输入区,点击”优化.apk”按钮, 会在【XXX.RS.apk】的同级目录下生成已经优化好的程序【XXX.RSO.apk】。 5、framework-res.apk工具 拖拽【XXX.apk】文件到”安装”按钮前的输入区,点击”安装”按钮,会生成相应的apk,编译对某 些APK程序的反编译和重建。 点击”查看”,即可在资源管理器中看到已经安装的framework-res.apk,可对其进行管理或删除。 6、.apk转.jar 拖拽【XXX.apk】文件到”.apk转.jar”按钮前的输入区,点击”.apk转.jar”按钮, 会在文件【XXX.apk】的同级目录下生成文件【XXX_dex2jar.jar】。 7、.dex转.jar 拖拽【XXX.dex】文件到”.dex转.jar”按钮前的输入区,点击”.dex转.jar”按钮, 会在文件【XXX.dex】的同级目录下生成文件【XXX_dex2jar.jar】。 注意事项 1、使用环境:首先必须安装JDK 6/7。 2、使用“反编译.apk”功能时,路径中不能出现任何中文字符或全角字符! 3、使用“重建.apk ”功能时,路径中不能出现任何中文字符或全角字符!
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Android西红柿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值