文档章节

反编译APK更改文件的文字(修改应用名称)

小贾
 小贾
发布于 2014/07/03 00:18
字数 535
阅读 554
收藏 0

研究android很久,一直没有进行反编译,再还原。

刚好有个机会,朋友有个Apk,想把应用名称改了,找到我了。我一想,听简单啊,就改个strings.xml就行了,结果打开apk一看,傻了,目录是这样的

下面为res目录

跟我想的不一样,res里没有values目录,突然发现resources.arsc,应该这个就是colors.xml、strings.xml、dimens.xml等存放目录,事实果然如此。

这怎么搞,网上搜了一下,用apktool即可,很方便,反编译后,修改文字,再编译

下载了一个apktool

然后执行:

apktool d 123.apk call


123.apk 表示要进行反编译的APK文件,call表示反编译后文件存放的目录,即在当前目录下会自动建一个新目录存放(如:d:\call

执行完上面语句后,如果没有出现错误提示,则成功反编译了,找到call目录,打开smali目录即为反编译出来的字节。

但我在执行上面语句后,却出现了错误提示:

D:\android\ApkTool>apktool d 123.apk call
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: C:\Users\jack\apktool\framework\1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec:
0x01030119
        at brut.androlib.res.data.ResPackage.getResSpec(ResPackage.java:61)
        at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:55)
        at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:51)
        at brut.androlib.res.data.value.ResReferenceValue.getReferent(ResReferen
ceValue.java:59)
        at brut.androlib.res.data.value.ResReferenceValue.encodeAsResXml(ResRefe
renceValue.java:46)
        at brut.androlib.res.data.value.ResScalarValue.encodeAsResXmlAttr(ResSca
larValue.java:43)
        at brut.androlib.res.data.value.ResStyleValue.serializeToResValuesXml(Re
sStyleValue.java:48)
        at brut.androlib.res.data.value.ResBagValue.serializeToResValuesXml(ResB
agValue.java:40)
        at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResour
ces.java:264)
        at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:137
)
        at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:93)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
        at brut.apktool.Main.cmdDecode(Main.java:120)
        at brut.apktool.Main.main(Main.java:57)

删除下面的文件

C:\Users\jack\apktool\framework\1.apk

再运行

D:\android\ApkTool>apktool d 123.apk call
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: C:\Users\jack\apktool\framework\1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...

可能是不同的场景会导致各种错误,上面只是介绍了一种特殊的情况,是以前以其他形式运行过apktool,如果还是有问题可以试一下面这几种方式:

http://blog.csdn.net/sam_zhang1984/article/details/8839175

或者下载

http://pan.baidu.com/s/1bn2CIFd



© 著作权归作者所有

上一篇: Service小结
小贾
粉丝 3
博文 13
码字总数 2930
作品 0
海淀
高级程序员
私信 提问
Android反编译(二) 之反编译XML资源文件

Android反编译(二) 之反编译XML资源文件 [目录] 1、工具 2、反编译步骤 3、重新编译APK 4、实例 5、装X技巧 6、学习总结 1、工具 1).反编译工具 apktool http://code.google.com/p/android-a...

老鹰a
2018/06/29
0
0
Android安全攻防战,反编译与混淆技术完全解析(上)

之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情。不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦...

postdep
2016/02/18
74
4
浅析,反编译 Android APK流程分享!

作为公司的技术兼产品人员,看到别人开发的优秀Android APK实在羡慕,在Android开发的过程,也很想去学习别人那些漂亮的动画和布局,或是产品逻辑等是怎么做的,所以最近学习了对APK的反编译...

科技创造
2015/07/07
4.1K
5
SimpleNews 项目的重构之旅(5) - Android Gradle 打包&混淆应用

应用场景 之前一直没有做 Android APK 发包管理,所以这次重构把这打包这部分考虑进去,之后可能会发布到一些应用市场。 要实现的功能 混淆代码 实现签名 过滤无用资源 生成 release 版本 AP...

無名小子的杂货铺
2017/06/12
0
0
Android反编译debug调试详解(一)(附图)

第一次写博客简书之类的 ,下面使劲踩我。不足之处忘指出。 前言 最近对别人一个项目挺感兴趣,就反编译玩一玩。自己真正意义上反编译并且利用Android studio Debug反编译的项目。自己利用的...

A_CUI
2017/09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分享一个免费星球!

本文首发于个人微信公众号 《andyqian》, 期待你的关注~ 前言 今天周五,不谈技术,向大家分享一个免费的星球。都说今年市场行情不好,不好找工作,事实确实如此。身边也有好几个朋友,在找...

andyqian
18分钟前
39
0
JNI 动态注册和静态注册的详解

本博文采用问答的方式讲解JNI的动态注册和静态注册的方式 1. 什么是JNI? JNI的英文缩写是 java nativie interface ,按照字面解释就是java 本地接口。什么样的接口才叫nativie interface ,用...

shzwork
38分钟前
0
0
OSChina 周四乱弹 —— 如果人生有机会 carl+z

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :How I wish I could choose between Heaven and Hell. How I wish I would save my soul. #今日歌曲推荐# 《Tears And Rain》- J...

小小编辑
今天
928
12
一步步教你怎么用python写贪吃蛇游戏

目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)...

上海小胖
今天
10
0
Nocos-从Clone到放弃

从clone到放弃系列吧。 1.从源码说起吧,用阿里自己的规约扫描。得到的结果如下: 都是小事,某些警告可能是假的。 都9012年了,MyBatis还是不错的,Java+Sql写在一起...特别是后面一张图。 ...

RippleChan
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部