前两篇博客总结了常用逆向工具的使用,掌握了逆向工具的基本使用后,我们可以做一些有趣的事情 。例如:某一款app的背景是红色的,我们觉得不好看,那么我们可以在反编译后给它换成其他颜色的 。例如:某一款app的某个字符串叫“hello world”,我们觉得不好听,那么我们可以修改为自己想要的内容,例如“hello ” 。例如:某一款app的名字叫“123”,我们觉得不好听,可以给它改成“456” 。再例如:某一款app的某个界面的图片我们不喜欢,我们甚至可以替换为自己的照片 。这篇博客讲的就是,逆向后最基本的修改—修改资源文件 。
第一、获取一个用于逆向和修改的apk
首先,我们得有一个用于逆向和修改的apk 。修改资源是逆向后最基本的一种修改,因此,我们自己创建一个项目,用于接下来所有的逆向和修改 。到后面,我们会通过一款app进行实战,先从最基础的开始 。我们先创建一个用于修改的项目,命名为“” 。
很简单的一个布局:
.xml文件:
.xml文件:
打包,编译成apk,安装到模拟器 。在这里,不介绍如何打包和签名app,可自行百度“ 如何打包apk” 。我们运行一下,看一下效果,基本就是长这么个样子(很丑):
第二、将我们自己创建的apk反编译
打开 ,将我们的apk拖进去,反编译 。
第三、修改apk的资源文件
反编译后,我们找到布局文件,打开,如下所示 。这跟我们的布局文件源代码基本是一样的 。因此,接下来修改资源文件并不是太难的事情 。
1、修改背景颜色:
我们的apk,现在的背景颜色是很鲜艳的红色 。我们想修改为其他颜色,如何修改?看一下上面我们反编译后的布局文件源码,里面有这么一句很熟悉代码:
android:background="@color/colorTest"
其实,这就是声明背景颜色的代码 。我们去.xml中查一下的颜色值 。打开后,我们发现这里有很多的颜色,为了方便查找,我们直接使用搜索功能,搜索关键字“”,定位到所在的位置,我们修改为:
这里有一点需要注意,修改后,我们一定要保存现有的修改:
然后,去里选择编译,编译完成后,点击log里面最后的apk路径,拿到新生成的apk:
我们卸载原来的app,安装我们反编译和修改背景后的app,看一下效果 。我们原有的鲜艳的背景,已经变成如下图的暗色背景 。由于本人有点色弱,因此,就不说下面是个什么颜色了 。总之,我们达到了我们的目的:把鲜艳的颜色,变成了如下图的暗色 。
2、修改按钮上的文本
按钮一上的文本是“按钮1”,我们不想叫它“按钮1”了,想给他换个名字“” 。我们仍然去查看反编译后的布局文件 。发现有下面这么一句,这个跟我们在布局文件中去引用字符串其实是有一点不同的,没有“+” 。
【三Android逆向修改资源文件】android:text="@string/btn1_name"
我们尝试去搜索“”,找到了的值,如下所示 。
我们修改一下,把“按钮1”修改为“”,并且保存 。编译后,卸载原来的app,安装新的apk,运行效果如下:
3、修改的内容、字体大小以及颜色
仍然是跟上面一样的操作,修改布局文件中的内容和字体大小:例如,我修改内容为“哈哈,你的apk被我反编译啦!”,字体大小为“30sp”,并且我把字体颜色给它改成其他颜色,例如自带的 。
修改字符串的内容不是什么难事,跟我们修改的内容一样 。修改字体大小,也不难,只需要修改25为30即可 。而为原本没有指定颜色的添加字体颜色,需要我们在声明的最后手动添加一行代码(这跟我们写布局文件时是一样的),如下所示:
哈哈,你的apk被我反编译啦!
一定记得保存所有的修改后,编译生成apk 。卸载原来的,安装xinde apk,运行效果如下所示:
文章插图
(1) 我们打开文件夹,点击右键,选择打开方式,打开文件路径:
(2)复制粘贴一张新的图片到文件夹下,例如我的图片叫“”:
(3)修改引用图片资源的代码:
android:src="http://www.kingceram.com/post/@mipmap/qmusic"
(4)保存代码,编译,卸载旧的apk,安装新的并且运行,如下图所示:
5、修改app的名字
(1)我们找到.xml文件,如下:
其中,里面有这么一句熟悉的代码:
android:label="@string/app_name"
(2)查找字符串,找到后修改为“破解”:
(3)保存,编译,卸载旧的apk,安装新的apk并查看,我们的app名字已经修改为“破解”:
最后,总结一下,这篇博客我总结了反编译apk后如何修改资源文件,包括修改文字内容,字体大小和颜色、图片资源、应用名称等 。这只是最基本的修改,不会涉及到原有的java代码的修改,比较简单 。在后面的博客中,我会逐渐的总结如何修改逻辑代码,比起修改资源文件,会稍微复杂一些,敬请期待 。
- 山雨欲来?阿里、腾讯、京东数科三巨头在区块链领域暗中较劲
- 智能车图像处理18-进阶篇10--三叉路口辅助判断
- cad是二维还是三维
- 华为的石墨烯电池迟迟不见踪影,三星已在电池技术上取得突破
- 廿三 【深度学习】 Python 和 NumPy 系列教程:Matplotli
- 廿三 Unity热更新方案C#Like
- 针对Android的木马程序Loapi好毒!可以真正的破坏整支手机
- Java开发三年,月薪10K,每天CRUD,感觉就好像在坐吃等死!
- 根轨迹法分析二阶,三阶系统运放的稳定性
- 腾讯T3大佬亲自教你!腾讯、网易必问的20道题Android面试题,含爱奇艺