当前位置: 首页 > article >正文

android 配置鼠标右键快捷对apk进行反编译

1、配置apktool环境变量

要进行对apk 反编译,那就得要先下载apktool.jar以及apktool.bat,然后把它配置在系统环境变量里面
apktool.jar下载地址
由于我这边下载不了apktool.bat软件,于是就用sublime文本编辑器进行生成一个apktool.bat,当然也可以用记事本等,只需要把下面代码贴进记事本,保存为apktool.bat即可,这边下载的是apktool.2.8.0的版本,然后将两者放置在同一文件目录下

@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及apktool.bat同一个路径复制进去,类似酱紫:在这里插入图片描述

apktool2.8.0只是文件夹的命名,然后打开cmd,直接输入apktool,如果得到下图所示,那恭喜你,你的环境变量已经设置完成
在这里插入图片描述

2、编写反编译脚本apk_decompiled.bat

对于脚本内容就不做过多描述了,这里只是简单的对apk进行反编译,并把反编译之后的目录输出设置为跟源Apk同级,方便后续操作,有需要的可以自行扩展下功能

@echo off
:: 反编译 APK 文件的批处理脚本

:: 检查是否传入了文件路径参数
if "%~1"=="" (
    echo 错误: 请提供 APK 文件路径!
    echo 使用示例: decompile_apk.bat C:\path\to\your.apk
    exit /b
)

:: 获取 APK 文件路径和文件名
set APK_PATH=%~1
set APK_NAME=%~nx1
set DIR=%~dp1

:: 设置输出目录为 APK 文件路径去除 .apk 后缀的目录
set OUT_DIR=%DIR%%~n1

:: 检查 APK 文件是否存在
if not exist "%APK_PATH%" (
    echo 错误: 文件 "%APK_PATH%" 不存在!
    exit /b
)

:: 检查 apktool 是否可用
where apktool >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo 错误: 找不到 apktool,请确保 apktool 已安装并添加到系统的环境变量中!
    exit /b
)

:: 检查输出目录是否存在,如果存在则删除
if exist "%OUT_DIR%" (
    echo 目标目录 "%OUT_DIR%" 已经存在,正在删除目录...
    rmdir /s /q "%OUT_DIR%"
)

:: 创建输出目录
mkdir "%OUT_DIR%"

:: 使用 apktool 反编译 APK 文件,添加 -f 参数以强制覆盖已存在的目标目录
echo 正在反编译 "%APK_NAME%" 到目录 "%OUT_DIR%" ...
apktool d "%APK_PATH%" -o "%OUT_DIR%" --only-main-classes -f
if %ERRORLEVEL%==0 (
    echo 反编译成功,文件已保存到:%OUT_DIR%
) else (
    echo 错误: 反编译失败,请检查 APK 文件是否有效。
)

pause

3、设置鼠标右键进行反编译

按下“Win + R”快捷键,然后在弹出的运行窗口中输入“regedit”,先打开注册表,找到计算机\HKEY_CLASSES_ROOT*\shell路径
在这里插入图片描述
直接右键新建项,新建command项,如下图所示
在这里插入图片描述
最后在command的基础上,双击key,修改其值,把批处理的脚本文件bat的路径贴上去
在这里插入图片描述
最后确定,就能达成目的啦,右键apk就能快速的对apk进行反编译,再也不用打开cmd输出java -jar xxx 进行手动反编译了~
在这里插入图片描述


http://www.kler.cn/a/385272.html

相关文章:

  • docker进行SRS直播服务器搭建
  • Python小白学习教程从入门到入坑------第二十八课 文件基础操作文件读写(语法进阶)
  • 【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
  • 面相小白的php反序列化漏洞原理剖析
  • 前端 Canvas 绘画 总结
  • uniapp 实现瀑布流
  • 如何通过Python SDK更新Collection中已存在的Doc
  • 一文读懂肖特基二极管
  • 【汽车悬挂减震器】制造行业的市场需求与汽车产量呈明显的正相关关系
  • Leetcode 278 First Bad Version
  • 以梧桐数据库为例分析分组排序并取每组第二大数值对应的用户的SQL实现
  • Spring Boot 携手 Vue 构建校内订餐新体系
  • RibbitMQ-原理使用
  • Java NIO操作
  • Liunx:文件fd、重定向、管道
  • 全局变量之C与Pthon的差异
  • 若依管理系统使用已有 Nacos 部署流程整理
  • [JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
  • 城镇住房保障:SpringBoot系统维护与升级
  • Python基于TensorFlow实现双向循环神经网络GRU加注意力机制分类模型(BiGRU-Attention分类算法)项目实战
  • 多线程案例---阻塞队列
  • RapidrepairController
  • linux 下 signal() 函数的用法,信号类型在哪里定义的?
  • 【go从零单排】go语言中的指针
  • NVR小程序接入平台/设备EasyNVR多品牌NVR管理工具/设备汇聚公共资源场景方案全析
  • 如何设置 TORCH_CUDA_ARCH_LIST 环境变量以优化 PyTorch 性能