使用apktools时遇到的问题

掌握apktools:Android APK分析与操作 在深入探讨使用apktools工具包进行APK文件的反编译、修改和优化之前,有必要对其有一个全面的认识。本章节将介绍apktools的基本概念,它的功能以及如何在不同的操作系统中进行安装。apktools是一个开源项目,广泛用于Android开发者社区,它提供了一系列用于处理Android应用包文件(APK)的工具。这些工具包括但不限于:反编译、修改和重新打包APK文件。 阅读详情

本人使用apktools时遇到的问题

2018.1.16我看到了别人的一个布局很棒并且自己写的app也有修改页面的需求,于是想看下别人写的布局源码。搜了下发现apktools能做到便下了一个,但没有预料中的顺利。

首先到网络上(http://www.uzzf.com/soft/42697.html)下载一个安装包解压,然后并把要解压的apk文件(我的apk文件名为test)放入apktool的路径下

使用cmd进行如下操作

C:\Users\Jun>f:
//进入f盘
F:\>cd F:\apk反编译\apk2java\apktool1.4.1
//进入解压好的路径(注意:每个人的路径都不相同)
F:\apk反编译\apk2java\apktool1.4.1>apktool.bat d -f  test.apk  test
//进行反编译 (最后一个test的意思是建一个test的文件夹并把内容放入其中)

以下就是问题所在了:

1、下载的apktools版本过久 解析不了该apk文件

报错如下:

F:\apk反编译\apk2java\apktool1.4.1>apktool.bat d -f  test.apk  test`
I: Baksmaling...`
testI: Loading resource table...`
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file`
​
  at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:55)
​
•    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:315)
•    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:50)
•    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:43)
•    at brut.androlib.Androlib.getResTable(Androlib.java:44)
•    at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:148)
•    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
•    at brut.apktool.Main.cmdDecode(Main.java:128)
•    at brut.apktool.Main.main(Main.java:65)
•    Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
​
•     at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
•    at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:45)
•    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:97)
•    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:82)
•    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:48)
•    `... 8 more`

我们可以从文件夹名字可以看到这个apktools版本为1.4.1版本的,而目前最新的版本是

2.3.1了

解决方法:

到官网https://ibotpeaches.github.io/Apktool/下载最新jar替代掉旧版本

2、版本是最新的版本,但使用的方法已经过时
F:\apk反编译\apk2java\apktool1.4.1>apktool d  -r -s  test.apk  test
报错如下:
Input file (test) was not found or was not readable.

这个方法好像到2.0版本的时候已经过时了

解决方法:到apktools官网即可查看最新的使用方法:

$ apktool d test.apk
I: Using Apktool 2.2.1 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: 1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
$ apktool b test
I: Using Apktool 2.2.1 on test
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...

我们只需用到第一行命令

F:\apk反编译\apk2java\apktool1.4.1>apktool d test.apk 命令即可

这个时候会显示

F:\apk反编译\apk2java\apktool1.4.1>apktool d test.apk
I: Using Apktool 2.3.1 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\Jun\AppData\Local\apktool\framework), using C:\Users\Jun\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\Jun\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...

表明你反编译成功啦!

反编译的内容就会出现在你对应文件夹上里了

如果出现

F:\apk反编译\apk2java\apktool1.4.1>apktool d test.apk
Destination directory (F:\apk反编译\apk2java\apktool1.4.1\test) already exists. Use -f switch if you want to overwrite it.

我们只要把原来的test文件夹删掉就可以了,再跑一遍就行啦!

(遗憾的是,本人使用as查看资源文件后发现该app的布局使用了自定义view,这说明我还得去反编译别人的代码文件。。。如有错误的地方,欢迎指出)

嫌麻烦的可以去下载本人改好的apktool:

http://download.youkuaiyun.com/download/junj19/10209057

ApkTools:精通APK编译与反编译的实践指南 本文还有配套的精品资源,点击获取 简介:ApkTools 是一款专为 Android 应用开发者设计的工具,用于反编译、修改和重新打包 APK 文件。通过学习使用 ApkTools,开发者可以深入探究 APK 结构,并进行自定义修改和优化,从而调试和本地化 Android 应用。本教程将指导你完成 APK 的反编译、修改以及重新打包和签名的全过程,同时提供对 Smali 代... 阅读详情

相关推荐

silvaco——GaN HEMT探索

上图为输出特性曲线 ,分别是在栅压为1v、3v、5v的情况下,可以看出在1v时器件处于截止状态,只有非常小近似于0的电流通过,随着栅压逐渐增大,沟道开启,产生漏极电流。上图为栅极漏电流曲线和转移特性曲线以及其提取的参数,可以看到阈值电压为=1.30249V,当栅压为0v时,Id=8.01032e-006,当栅压为5V时,Ig=3.11627e-006。albrct.n,低场迁移率模型,bn.albrct,an.albrct是albrct模型中的参数,可以由用户自己设定。lat.temp,晶格自热模型;

weixin_61913839的博客 7616

Apktool 打包失败解决办法

解决apktool打包过程中常见的问题

zhouzying的博客 2458

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复

本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。

weixin_27240351的博客 338

apktool 反编译打包编译各种错误类型和解决方法总结

error: Public symbol drawable declared here is not defined. 第一种问题:  使用命令  apktool

炮哥的专栏 1万+

SAP移动类型

SAP移动类型移动类型定义 移动类型定义

qq_20593197的博客 6205

MOSFET高频响应实战:如何用LTspice仿真内部电容效应(附模型文件)

本文深入解析MOSFET高频响应中的内部电容效应,通过LTspice仿真工具详细展示如何提取模型参数并优化高频特性。从栅极相关电容到结电容的物理本质,再到实战案例中的开关损耗分析和频率响应扫描,提供全面的设计优化方法,帮助工程师有效应对高速开关电路中的电容挑战。

weixin_33725722的博客 390

apktool 反编译失败

I: Using Apktool 2.4.0 I: Copying .\xxx classes.dex file... I: Building resources... W: K:\arpg\client\tools\.\xxx\res\values-v24\styles.xml:3: error: Error retrieving parent for item: No resource fo...

yy405145590的专栏 2096

wireshark提取视频数据之RTP包中提取H264和H265

本文主要描述从wireshark包数据中提取出H264和H265裸流数据方法,裸流通过RTP封包方式发送,从抓包中直接提取视频流数据,进而进行流媒体问题定位

技术控的笔记 17万+

【apktool正确打包流程】Apktool 打包失败解决办法【解包时必须带上-r参数,表示不解码资源文件】因为资源文件的接码会导致各种问题???

【代码】【正确打包流程】Apktool 打包失败解决办法【解包时必须带上-r参数,表示不解码资源文件】因为资源文件的接码会导致各种问题???

weixin_43343144的博客 2662

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

Robot_PLC_HMI_Automation 6535

ESM2蛋白预训练模型 蛋白质、氨基酸向量表示

参考: https://github.com/facebookresearch/esm https://huggingface.co/facebook/esm2_t33_650M_UR50D https://esmatlas.com/resources?action=fold tokenizer_对输入蛋白会头尾添加cls、eos特殊字符,占两个字符长度 参考:https://github.com/facebookresearch/esm 直接clone下来代码

weixin_42357472的博客 1万+

apktool反编译后回编失败解决方法

今天用apktoool反编译apk,然后回编回去的时候报错失败了。具体情况是这样的。 apktool版本:2.3.4 使用下面的命令反编译apk: apktool d dou2.apk -o test 然后修改完成后使用下面的命令回编译 cd test apktool b . 然后在回编译的时候报错信息如下: W: ~/Downloads/dou2/./res/color/a77.xml:4:...

写代码的林克 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【亲测免费】 Apktools 使用与安装指南

Apktools 使用与安装指南 项目目录结构及介绍 Apktools 是一个用于逆向工程Android应用程序包(APK)的开源工具,其GitHub仓库位于 https://github.com/alpine-linux/apk-tools.git 注意:此处提供的链接实际指向的是一个假设的或错误的地址,因为Alpine Linux与Apktool的关联主要在于Alpine的包管理器,而不是An...

gitblog_00301的博客 1167

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

浅谈-apkTools用法

浅谈-apkTools用法1. 前置环境有哪些?2. 如何使用?3. 可能会出现的问题?4. 其他 1. 前置环境有哪些? JDK1.8.* apktools*.*.jar 和 apktools.bat (下面是下载地址) https://ibotpeaches.github.io/Apktool/install/ 2. 如何使用? PS: 之前的一些文章都老了,所以觉得有必要写一下(完美的废话) 把apktools.bat 和 apktools.jar 包放在一个目录中 然后cmd—>到a

走在成功路上的博客 878

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

apktools使用

1、apktools apktool.jar apktool.bat #apktool.bat d app.apk //反编译apk,在当前目录生成app文件夹 可以修改res/ smali/文件,主要针对layout等xml #apktool.bat b -o out/app1.apk //重新生成apk,没有经过签名 #系统签名 java -jar signapk.jar platfor...

拒绝背八股文 1322

apk逆向思路_实验室|Andorid 逆向初探

Andorid 逆向初探今天 2019年9月27日一个724.32KB的大小的整蛊app开始在各大高校间病毒式蔓延。当“快活的声音”在严肃的课堂或是肃静的图书馆响起时,被好奇心害死的“猫“们也就被宣判了“社会性死亡。”这款的流氓软件到底是怎么做到能强制“锁定最大音量”并“循环播放”的呢,在整蛊背后会不会还隐藏着某些秘密呢?“另一种”好奇心上线了但是我还不会逆向啊!学呗!于是开始了萌新的逆...

weixin_34098846的博客 695

apktools反汇编安卓apk工具

apktools反汇编安卓apk工具,很好使,操作简单

Keep Learning 1250

反编译-Apktools的使用

Apktool 作用 这里就不多说了,前面已经说过:Android .apk逆向工程(安装篇):Windows下Apktool安装,下载以及使用 命令介绍 以下命令需要在apktool根目录下完成操作: 作用 可以随时执行的选项。 通过apktool或者apktool.bat实现 -version, --version 输出当前版本。 -v, --verbose 详细输出。必须...

uiuno 572

使用Apktools反编译apk应用

使用Apktools反编译apk应用 1.获取APK的classes.dex文件: 得到你想要的应用的apk文件,用解压软件打开apk,从apk中复制出classes.dex文件。 2.classes.dex转化为 .jar 解压下载的的dex2jar,将classes.de...

weixin_33943836的博客 104

创建APK签名文件(包括intellij、eclipse、apktools三种方式)

一,使用intellij创建apk签名文件流程如下图:    1.     2、 3. 4. 5. 6. 7. 二,使用eclipse创建apk签名文件流程如下图:    1. 2. 3. 4

spring5555的专栏 1742

【工具】ApkTools

为什么要使用它,和简单的unzip有什么区别再说APKAPK文件简介 APK是AndroidPackage的缩写,即即Android application package文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件

1026

安卓逆向 apktools反编译

jarsigner -verbose -keystore new.keystore -signedjar 签名后.apk 未签名.apk new.keystore。# 反编译 -b ,–no–debug-info # 防止baksmali打印出调试信息。-f, --force # 强制删除目标文件目录,执行反编译命令时,强制覆盖存在。–only-main-classes # 反编译根目录中的dex文件。-o, --output # 将反编译后的文件写入到指定的文件路径下。5,把签名打到新的apk上。

gc889900的博客 904

使用ApkTools反编译

反编译: 查看主要是靠下面这个文件: 执行该文件: 将相应的文件拖入即可

king_LFY的博客 338

apktools 工具反编译 :Exception in thread “main” brut.androlib.AndrolibException: Could not decode

apktool反编译bug

你吧吧的专栏 1万+
Jayuan19
博客等级 码龄9年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值