​apk反编译​(win11亲测可用)

捣鼓apk反编译,想做一些羞羞的事情,网上的教程大多都比较旧,这里更新一篇比较新且详细的反编译教程。

  • 目录

软件准备

apktool安装和使用

dex2jar安装和使用

jd-gui使用


  • 软件准备

首先我们想要比较完整的解析一个apk需要三个工具:

  1.     apktool (用于资源文件获取)
  2.     dex2jar (用于获取源码)
  3.     jd-gui (用于源码查看)

附上链接

apktool官网                                    Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.

dex2jar官方github仓库                   GitHub - pxb1988/dex2jar: Tools to work with android .dex and java .class files

jd-gui Google Code仓库(直接下载)                 https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innlab/jd-gui-0.3.3.windows.zip

这里jd-gui其实是比较次要的,因为大多数情况到不了看代码这一步,dex2jar就解析不了了


  • apktool安装和使用

apktool官网讲解安装方法非常详细---->>Apktool - How to Install

这里再翻译啰嗦一下

首先先检查java环境,然后把下面这一段放在文本文档里面改个后缀改成 apktool.bat

@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

然后下载官网最新的  apktool.jar  ,我这里目前是2.6.0之后改名成   apktool.jar


两个文件(apktool.bat和jar)放在同一个文件夹下面,然后把要反编译的apk也放进来,之后用cmd在该文件夹下面执行命令   apktool.bat d -f  test.apk  test   更改你自己的apk名称和输出文件夹打开“test”文件夹,就可以看到反编译后生成的文件,在这些生成的文件和文件夹当中,我们关心的是res文件夹中和AndroidManifest.xml文件,打开res文件夹,里面存放了我们所关心的xml文件,如下图所示:

   

  • dex2jar安装和使用

dex2jar官方github仓库里面进入下载最新版的SNAPSHOT如下图

   

解压之后,把apk文件的后缀改成zip再解压获取classes文件,类似下图

把要反编译的classes文件放在SNAPSHOT文件夹里面执行命令

d2j-dex2jar.bat   classes.dex

 这里测试了两个

错误示范:如果下载了错误的(低的)版本可能会报错

error warning

有些离谱的解决方案是修改dex文件里面的037为036或者035

离谱操作

但是我试了是不行

  • jd-gui使用

    最后我们用jd-gui打开反编译出来的jar文件


END 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值