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

Android:反编译apk踩坑/apktool/dex2jar/JDGUI

需求描述

想要反编译apk文件,搜到了这篇博客:Android APK反编译就这么简单 详解(附图),非常有参考价值~但其中的工具下载链接都已404,而本杂鱼实际操作的过程中也出现了亿点点点点点点的问题,于是码了这篇博客记录一下~
工具包戳这里:myDemos,分支:deApk
工具包目录结构

使用&踩坑

根据Android APK反编译就这么简单 详解(附图)这篇博客,三个工具分工明确:apktool用于反编译apk中的布局、图片等静态资源,dex2jar用于反编译apk中的类文件,JDGUI用于查看dex2jar的编译结果——jar包中.class的源码。
以下是这三个工具的使用与踩坑详情:

apktool

首先记录操作过程,将需要反编译的apk文件拷贝到apktool文件夹下:
myApk.apk
在资源管理器地址栏输入“cmd”并回车,即可在当前文件夹下打开命令行(下文不再赘述):
在当前文件夹下打开命令行
执行以下命令:

apktool d -f apk名称.apk

apktool反编译结果
生成的apk同名文件夹即为反编译结果~命令行输出结果无报错即可。

// 以下为个人踩坑记录 ——————————————————————————————————————————————

Unsupported major.minor version 51.0

运行apktool,首先需要搭建java环境,而且最好安装一个版本较高的jdk,比如本杂鱼一开始安装了jdk1.6,报错“Unsupported major.minor version 51.0”,改装jdk1.9后未再报错~(这里碎碎念一下:后来在本地编译dex2jar,1.9版本太高报错,装回1.6又太低报错。。最后到oracle官网注册下载了jdk1.8,重新捯饬了环境才OK)所以建议直接使用jdk1.8~
本来想把jdk也上传git,由于超过了单个文件100M的限制,只能麻烦有需要的小伙伴自己下载啦~
oracle-jdk1.8下载,没有账号的话直接走注册流程就行,填一些信息即可;
不熟悉java环境变量配置的萌新戳这里:一步步教你如何配置Java环境变量(超级详细)(其中第10步重复了,只操作第9步即可)

Exception in thread “main” brut.androlib.AndrolibException: Could not decode …

因java版本问题导致的报错解决了,定睛一看:还是有报错!度娘给出了解决方法:从apktool下载高版本的apktool.jar替换即可~(参考的原文链接在文末)

dex2jar

这个工具是用来反编译.class文件的,可以说是本杂鱼实际操作中最麻烦的一步了……由于最终解决报错的方案是直接从gitee仓库:dex2jar拉取源码,并根据README.md在本地编译后生成工具包(dex-tools-2.2)使用,之前的各种报错便感觉不必再细说。有时候一条道感觉走不通了,也许就应该尝试下转换思维另辟蹊径了哦!
总的来说,操作过程和apktool类似,先将需要反编译的apk文件拷贝到dex-tools-2.2文件夹下,然后在此文件夹执行以下命令:
PS:dex-tools-2.2中的脚本既有.bat格式又有.sh格式,应该也可以在Linux系统下使用(合理猜测)

d2j-dex2jar.bat -f apk名称.apk

dex2jar反编译结果
生成的apk同名-dex2jar.jar文件即为反编译结果~命令行输出结果无报错即可。

JDGUI

这是三个工具当中唯一最令人省心的了!T_T使用简便,no problem~
双击运行JDGUI文件夹下的jd-gui.exe,将dex2jar生成的jar文件拖入图形界面,或在界面进行操作打开jar文件即可。
双击运行jd-gui.exe

参考文档

[1] Android APK反编译就这么简单 详解(附图)
[2] 解决坑----Unsupported major.minor version 51.0
[3] 安卓逆向:apktool 反编译时报错 Exception in thread “main” brut.androlib.AndrolibException: Could not decode …

相关文章:

Android:反编译apk踩坑/apktool/dex2jar/JDGUI

需求描述 想要反编译apk文件,搜到了这篇博客:Android APK反编译就这么简单 详解(附图),非常有参考价值~但其中的工具下载链接都已404,而本杂鱼实际操作的过程中也出现了亿点点点点点点的问题,于…...

React 跨域的配置

1、为什么会出现跨域? 浏览器遵循同源政策(同源策略三要素:协议相同、域名相同、端口相同) 2、配置跨域代理 使用中间件 http-proxy-middleware(安装依赖) npm install http-proxy-middleware 创建setupP…...

Elasticsearch7.8.0版本进阶——持久化变更

目录一、持久化变更的概述二、事务日志(translog)三、持久化变更完整流程四、事务日志(translog)的作用五、事务日志(translog)的目的一、持久化变更的概述 没有用 fsync 把数据从文件系统缓存刷&#xff…...

CF Edu 127 A-E vp补题

CF Edu 127 A-D vp补题 继续每日一vp,今天晚上有课,时间不太多,回去就直接vp。前三题比较简单,过了之后排名rk2000,然后就去洗澡了。d题没怎么认真思考,其实也可做。最后rk4000。发挥还行,b题罚…...

剑指 Offer 05. 替换空格

摘要 剑指 Offer 05. 替换空格 一、字符替换 由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。建立字符数组地长度为 s 的长度的3倍,这样可保证字符数组可以容纳所有替换后的字符。 获得 s 的长度 length创建字符数组 array&#x…...

通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作

1.通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…...

Python实现某du文库vip内容下载,保存成PDF

前言 是谁,是谁在网页上搜索往年考试卷题答案的时候只能阅读前两页的选择题,是谁在搜几千字的文档资料只能看25%,是谁在百度文库找七找八的时候所有的东西都要付费才能继续看… 我先说 是我自己 我又不经常用,只有偶尔需要看看…...

vue3.0 模板语法

文章目录前言:1. 内容渲染指令1.1 v-text1.2 {{ }}插值表达式1.3 v-html2. 双向绑定指令2.1 v-model2.2 v-model的修饰符3. 属性绑定指令3.1 动态绑定多个属性值3.2 绑定class和style属性4.条件渲染指令4.1 v-if、v-else-if、v-else4.2 v-show4.3 v-if与v-show的区别…...

【GlobalMapper精品教程】054:标签(标注)功能案例详解

同ArcGIS标注一样,globalmapper提供了动态标注的功能,称为标签,本文详解标签的使用方法。 文章目录 一、标签配置二、创建标签图层三、标签图层选项1. 标签字段2. 标签样式3. 标签格式4. 标签语言5. 标签优先级一、标签配置 在配置页面的【矢量显示】→标签选项卡下,有标签…...

超详细树状数组讲解(+例题:动态求连续区间和)

树状数组的作用:快速的对数列的一段范围求和快速的修改数列的某一个数为什么要使用树状数组:大家从作用中看到快速求和的时候可能会想到为什么不使用前缀和只需要预处理一下就可以在O(1)的时间复杂度下实行对于数列的一段范围的和但是我们可以得到当我们…...

【学习笔记】AGC055

A - ABC Identity 如果只有AAA,BBB两种字符的话,我们发现要寻找p∈[1,n]p\in [1,n]p∈[1,n],使得[1:p][1:p][1:p]中AAA的数目与[p1:n][p1:n][p1:n]中BBB的数目相同。 如果有A,B,CA,B,CA,B,C三种字符,我们可以先将A,BA,BA,B分离出来&#xf…...

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错,将其改名为shell.asp.txt上传,发现上传成功 6.有个问题就是服务器将我们所…...

5.2 Python if语句

5.2.3 检查是否不相等要判断两个值是否不等,可结合使用惊叹号和等号(!),其中的惊叹号表示不,在很多编程语言中都如此。下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变量中,再打印一条消息&am…...

ubuntu gerrit 配置

1 - 简介 参考地址: https://www.cnblogs.com/anliven/p/12019974.html https://www.cnblogs.com/anliven/p/11980432.html 虽然Gerrit 本身提供 Code Review和 Git 仓库的两大功能,但实际上很多项目用的是其他的Git仓库,例如GitLab和GitHub。 一般情况下,Gerrit位于最终…...

运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐

现在市面上运动耳机的品牌越来越多,还不知道选择哪一些运动耳机品牌,可以看看下面的一些耳机分享,运动耳机需要注意耳机的参数配置以及佩戴舒适度,根据自己最根本的使用需求来选择运动耳机。 1、南卡Runner Pro4骨传导蓝牙运动耳…...

(7)C#传智:方法及参数、重载(第7天)

一、方法作用域 被调用者需要调用者的值,方法有二: 1.传参数. private static void Main(string[] args){int m 3;Console.WriteLine(m);Console.ReadKey();}public static int GetMax(int m){return m 3;} 2.使用静态字段模拟全局. 多个方法都需要时&#x…...

Python 函数式编程

函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 1.高阶函数 一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数 abs(-10) 是函数调用 abs是函数本身 abs函数名其实是一个变量名 变量可以…...

pandas读取EXCEL列名重复问题解决——pandas设置多行为列名(多层列名)

问题呈现 这是我在问答区看到的一个问题。 问:在python中使用pandas读取Excel数据,重复数据被区分了,如何做到重复数据不被区分? 解决思路 很明显,这是pandas读取excel文件时列名设置问题,我第一时间想…...

CMake常用语法

1. cmake_minimum_required(VERSION 3.4.1) 指定需要的最小的cmake版本 2. aux_source_directory 查找源文件并保存到相应的变量中: #查找当前目录下所有源文件并保存至SRC_LIST变量中 aux_source_directory(. SRC_LIST)3. add_library 3.1 添加一个库 add_library(<n…...

Java知识复习(一)基础知识

1、什么是JVM、JDK和JRE&#xff1f; JVM是指运行Java字节码的虚拟机。而字节码文件指的就是扩展名为.class的文件&#xff0c;JDK指功能齐全的Java SDK&#xff0c;能够创建和编译程序JRE指Java运行的环境&#xff0c;包括JVM、类库和命令等 2、重载和重写的主要区别 重载&…...

2026 年 AI 毕业论文工具横评:okbiye 领衔,9 款工具实测对比,帮你避开 90% 的写作坑

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 一、前言&#xff1a;AI 写论文&#xff0c;别只盯着 “一键生成” 毕业论文写作&#xff0c;是每个大学生都绕不开的关卡。从选题定方向、…...

Unity版本降级实战指南:从2021.1回退到2019.4的四步硬核操作

1. 为什么Unity版本降级不是“回退安装”那么简单 在Unity项目开发中&#xff0c;很多人把“降级”理解成卸载新版本、重装旧版本、再拖进工程——就像换手机系统时刷回上个固件。但Unity的版本管理机制远比这复杂得多。我第一次遇到从2021.1.7f1c1往回降到2019.4.17f1c1的问题…...

医用超声图像灰阶图算法:原理、实现与应用

引言 医用超声成像作为一种无创、实时、无辐射的影像学检查手段,在临床诊断中扮演着至关重要的角色。超声设备采集到的原始信号是射频(RF)信号,而最终呈现在医生面前的,是经过一系列复杂算法处理后的灰阶图像(B-mode图像)。灰阶图算法正是将原始超声回波信号转换为可视…...

NotebookLM移动端隐私策略暗藏风险!第三方SDK调用图谱首次公开,3类敏感行为必须立即禁用

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;NotebookLM移动端隐私策略暗藏风险&#xff01;第三方SDK调用图谱首次公开&#xff0c;3类敏感行为必须立即禁用 SDK调用图谱首次逆向披露 通过对NotebookLM iOS v2.4.1 与 Android v2.5.0 APK/IPA 的深度静态…...

对比直接使用厂商 API 观察通过 Taotoken 进行成本管理的便利性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商 API 观察通过 Taotoken 进行成本管理的便利性 对于需要同时调用多个大语言模型的个人开发者或小项目而言&#x…...

网关连接ModbusRTU串行设备故障排查

客户在使用我们串行网关时常常遇到串行侧网络通讯问题&#xff0c;但是又无从下手&#xff0c;不知道如何排查。根据客户常见问题&#xff0c;进行了以下总结。即便是不连接我们网关&#xff0c;对于ModbusRTU串行设备在通讯故障时&#xff0c;都可以按照以下步骤来排查和解决。…...

Dism++终极指南:轻松掌握Windows系统优化与维护的10个关键技巧

Dism终极指南&#xff1a;轻松掌握Windows系统优化与维护的10个关键技巧 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾经因为Windows系统变得越来越慢…...

怎样快速去掉照片背景?2026年AI抠图工具实测对比与使用指南

还在为复杂的照片背景发愁&#xff1f;想要快速批量处理多张照片&#xff1f;本文将带你深入了解2026年最新的照片去背景方法&#xff0c;从零基础的在线工具到专业级别的桌面软件&#xff0c;再到智能AI抠图方案&#xff0c;帮你找到最适合自己的解决方案。快速去背景的核心方…...

FreeACS终极指南:开源TR-069自动配置服务器快速上手教程

FreeACS终极指南&#xff1a;开源TR-069自动配置服务器快速上手教程 【免费下载链接】freeacs Free TR-069 ACS that can run (mostly) anywhere. 项目地址: https://gitcode.com/gh_mirrors/fr/freeacs FreeACS是一款功能强大的开源TR-069自动配置服务器&#xff08;AC…...

2026 年程序员生存指南:AI 时代,哪些技能不会被淘汰?

2026 年程序员生存指南&#xff1a;AI 时代&#xff0c;哪些技能不会被淘汰&#xff1f; 导读 当 AI 能秒级生成 CRUD 代码、自动补全单元测试、甚至一键优化慢 SQL 时&#xff0c;“程序员会不会被 AI 淘汰&#xff1f;”成了悬在每个人头顶的达摩克利斯之剑。 焦虑没有用&…...