Android逆向工程 | Apktool + Dex2jar + jd-gui + Android Studio 提取源码

TOOLS & PREPARE

下载好三个工具

将 下载apktool_版本号.jar 改为 apktool.jar, 在 apktool 目录下新建 apktool.bat
内容如下(可参考https://ibotpeaches.github.io/Apktool/install/)

@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul

set java_exe=java.exe

if defined JAVA_HOME (
set java_exe="%JAVA_HOME%\bin\java.exe"
)

rem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd "%~dp0"
if exist apktool.jar (
    set BASENAME=apktool
    goto skipversioned
)
set max=0
for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion

rem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repack
if "%~1"=="" goto load
if not "%~2"=="" goto load
set ATTR=%~a1
if "%ATTR:~0,1%"=="d" (
    rem Directory, rebuild
    set fastCommand=b
)
if "%ATTR:~0,1%"=="-" if "%~x1"==".apk" (
    rem APK file, unpack
    set fastCommand=d
)

:load
%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*

rem Pause when ran non interactively
for /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause

如下效果
在这里插入图片描述

STEPS

1st

./apktool d F:\myJavaCode\_Android\ReverseEngineering\base.apk -o F:\myJavaCode\_Android\ReverseEngineering\base -s

在这里插入图片描述

2nd

转化 1st 中的 classes.dex 为 jar

./d2j-dex2jar.bat F:\myJavaCode\_Android\ReverseEngineering\base\classes.dex

在这里插入图片描述

3rd

启动 jd-gui, 打开 jar包, 查看 java 源码

java  -jar .\jd-gui-1.6.6.jar

在这里插入图片描述

FAQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值