研究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://pan.baidu.com/s/1bn2CIFd

java 反编译修改软件名字_反编译APK更改文件的文字(修改应用名称)相关推荐

  1. 通过Java程序将“/你的名字拼音缩写/input1/shixun1.txt”文件上传到HDFS的“/你的名字拼音缩写/java/input1/”目录下;通过Java程序将HDFS上的“/你的名字拼音

    题目: 通过Java程序将"/你的名字拼音缩写/input1/shixun1.txt"文件上传到HDFS的"/你的名字拼音缩写/java/input1/"目录下 ...

  2. java 修改文件创建时间_Java如何更改文件的最后修改时间?

    在java编程中,如何更改文件的最后修改时间? 此示例显示如何使用File类中的FileToChange.lastModified()和fileToChange setLastModified()来更 ...

  3. git 修改分支名字_大牛总结的 Git 使用技巧,写得太好了!

    作者:你喜欢吃青椒么来源:juejin.im/post/5d157bf3f265da1bcc1954e6 前言 本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下 ...

  4. git 修改分支名字_开发中必须要掌握的 Git 技巧

    前言 本文是参考杜老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下此文是为以后学习,工作,开发中如果遇到问题可以回过头来参考参考.因为水平有限,难免会有出错的地方,欢迎指正. ...

  5. 计算机用户名名称和全民,修改电脑名字_修改电脑用户名

    2016-12-23 18:02:04 1.打开电脑,在桌面上,选中"我的电脑",右键"属性",然后点击"系统属性"2.选择"计算 ...

  6. git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一个爱 ...

  7. linux mysql 修改数据库名字_安全快速更改MySQL数据库名称

    导读 MySQL似乎没有更改数据库名称的语句(也许是我不知道),如果你有数据库服务器的管理权限,可以直接更改一下目录名即可,但如果没有权限,可以通过更改表名达到修改数据库名的目的.下面是把centos ...

  8. 文件夹修改名字 matlab,matlab用 movefile更改文件夹内文件名字

    %超简单,利用matlab自带函数movefile(旧名,新名)更改文件夹内文件名字,可以是改一个或多个文件 clc clear dir1 = 'D:\workplace\新程序实验'; %选择数据所 ...

  9. python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...

  10. 永恒之塔修改服务器名字,永恒之塔模拟器服务端每个文件的用途及修改

    Aegoserver\gameserver\config\administration                  GM命令对应的管理权限配置文件 Aegoserver\gameserver\c ...

最新文章

  1. spring根据名称获取bean_带你从零开始手写 spring ioc 框架,深入学习 spring 源码
  2. boost::unorder_map如何插入元素_「React」如何在React中优雅的实现动画
  3. qt 主动打开虚拟键盘_ipad键盘有用吗?
  4. 面试必备:30 个 Java 集合面试问题及答案
  5. Qt for ios / Qt for Android 设置透明状态栏
  6. 博士申请 | ​英属哥伦比亚大学李霄霄助理教授招收全奖博士生、硕士生
  7. 飘逸的python - 字典合并值相加
  8. 60 秒 Linux 检查清单,快速初步定位你的性能问题
  9. c语言大学程序设计题库,c语言程序设计题库
  10. Guice依赖注入(接口多实现)
  11. 推荐一款可自创外星文字的工具
  12. python爬虫网页脚本_python网络爬虫之Scrapy
  13. 新版Dede采集不要在用没更新的Dede插件
  14. Python:strip() 函数
  15. luoguP5108 仰望半月的夜空 [官方?]题解 后缀数组 / 后缀树 / 后缀自动机 + 线段树 / st表 + 二分...
  16. 【转】超实用网站,一次性分享出来
  17. Java paypal如何实现付费订阅(循环扣费)
  18. android AdapterView 关键方法分析
  19. 【100个高大尚求职简历】简历模板+修改教程+行业分类简历模板 (涵盖各种行业) (简历模板+编辑指导+修改教程)
  20. 集团型企业主数据管理框架、方法

热门文章

  1. 没数据也能玩转BERT!无监督语义匹配实战
  2. 介绍4个大神常用而你不常用的python函数
  3. 20200221_2_国家非文化遗产聚类分析
  4. 授人以渔:分享我的文本分类经验总结
  5. Java丨Ele实验室“疫情传播仿真程序”的代码实现
  6. 免费讲座:网站运营之人性、策略与实战
  7. 博文视点大讲堂20期:Windows 7来了——知道你所不知道的Windows 7
  8. 简单类型视图状态应用
  9. 机器学习实战系列(七):数值回归与预测
  10. 数值优化之高斯-牛顿法(Gauss-Newton)